如何:注册和管理功能扩展

可以添加用于重构的自定义类型和目标、用于分析数据库代码的规则、数据库单元测试的条件和用于增强 Visual Studio 高级专业版或 Visual Studio 旗舰版所提供功能的数据生成器。 但是,无论创建了扩展还是安装了其他某人创建的扩展,都必须先注册功能扩展,然后才能使用该功能扩展。 有关更多信息,请参见扩展 Visual Studio 的数据库功能

作为最佳做法,应在 Program Files\Microsoft Visual Studio 10.0\VSTSDB\Extensions 文件夹内创建扩展的文件夹。 通过采用此方法,可以授予对子文件夹(而非 Extensions 文件夹本身)的写权限。 随后用户可以添加自定义扩展,但不能意外地更改作为 Visual Studio 一部分的文件。

警告

必须在计算机上具有管理员权限,才能在 Program Files\Microsoft Visual Studio 10.0\VSTSDB\ 文件夹中创建子文件夹。 如果没有适当的权限,请与网络管理员联系。

安全注意事项

安装并非您创建的扩展之前,应了解下列风险:

  • 扩展的安装程序可能怀有恶意,并可能通过安装权限访问受保护的资源。

  • 扩展本身可能怀有恶意,而如果使用扩展的用户具有足够的权限,扩展还有可能控制受保护的资源。

为了最大限度地降低风险,只有在已知扩展来源的情况下才应安装该扩展。 如果从不受信任的来源获取扩展,则在安装和使用扩展之前,应检查该扩展及其安装程序(如果有)的源代码。

安装自定义功能扩展

  • 将经过签名的程序集 (.dll) 复制到 Program Files\Microsoft Visual Studio 10.0\VSTSDB\Extensions\CustomExtensions 文件夹。

    CustomExtensions 是您或您的计算机管理员为容纳功能扩展的程序集和 XML 文件所创建的文件夹的名称。

    提示

    作为最佳做法,不应将程序集和 XML 文件直接复制到 Program Files\Microsoft Visual Studio 10.0\VSTSDB\Extensions 文件夹中。 如果改用子文件夹,则要防止意外更改随 Visual Studio 一起提供的文件。

    接下来,必须注册扩展,以使其显示在 Visual Studio 中。

注册功能扩展

  1. 在**“视图”菜单上,单击“其他窗口”,然后单击“命令窗口”**。

  2. 在**“命令”**窗口中,键入以下代码,并替代 FilePath 的程序集的路径和文件名。 在路径和文件名的两侧加双引号。

    提示

    如果创建了扩展,则经过编译的 .dll 文件的默认路径为 YourSolutionPath\bin\Debug 或 YourSolutionPath\bin\Release。

    ? System.Reflection.Assembly.LoadFrom("FilePath").FullName
    
    ? System.Reflection.Assembly.LoadFrom(@"FilePath").FullName
    
  3. 按 Enter。

  4. 将所得到的行复制到剪贴板上。 该行应该与下面的内容类似:

    "GeneratorAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=nnnnnnnnnnnnnnnn"
    
  5. 打开纯文本编辑器,如“记事本”。

  6. 提供以下信息,指定自己的程序集名称、公钥标记和扩展类型:

    <?xml version="1.0" encoding="utf-8" ?>
    <extensions assembly=""
                version="1" xmlns="urn:Microsoft.Data.Schema.Extensions"
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                xsi:schemaLocation="urn:Microsoft.Data.Schema.Extensions Microsoft.Data.Schema.Extensions.xsd">
      <extension type="<enter extension type here>" assembly="<enter assembly name here>, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b4deb9b383d021b0" enabled="true"/>
    </extensions>
    

    扩展类型采用“namespace.classname”形式。 程序集名称不包含 .dll 扩展名。

    提示

    如果程序集有多个类,则文件可以包含扩展类型的列表。

  7. 用 .Extensions.xml 文件扩展名保存文件。

    例如,可以将文件命名为 TestConditionName.Extensions.xml。

  8. 将此文件添加到 Program Files\Microsoft Visual Studio 10.0\VSTSDB\Extensions\CustomExtensions 文件夹。

    CustomExtensions 是您或您的计算机管理员为容纳功能扩展的程序集和 XML 文件所创建的文件夹的名称。

    提示

    作为最佳做法,不应将程序集和 XML 文件直接复制到 Program Files\Microsoft Visual Studio 10.0\VSTSDB\Extensions 文件夹中。 如果改用子文件夹,则要防止意外更改随 Visual Studio 一起提供的文件。

  9. 关闭再重新打开 Visual Studio。

    扩展现在可用。

示例

下面的示例显示了注册演练:创作 SQL 的自定义静态代码分析规则程序集中创建的自定义数据库代码分析规则所需的 XML 文件。 您必须替换上自己的公钥和程序集名称, 下列示例中的程序集名称为“SampleRules”。

<?xml version="1.0" encoding="utf-8"?>
<extensions assembly=""
            version="1" xmlns="urn:Microsoft.Data.Schema.Extensions"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="urn:Microsoft.Data.Schema.Extensions Microsoft.Data.Schema.Extensions.xsd">
  <extension type="SampleRules.AvoidWaitForDelayRule" assembly="SampleRules, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b4deb9b383d021b0" enabled="true"/>
</extensions>

请参见

概念

定义数据库单元测试的自定义条件

用自定义数据生成器生成专用的测试数据

创建自定义数据库重构类型或目标

创建和注册用于分析数据库代码的其他规则