注册单个文件生成器

若要使自定义工具在 Visual Studio 中可用,必须对其进行注册,以便 Visual Studio 可以实例化它并将其与特定项目类型相关联。

Visual Studio 的注册表位于专用配置单元 privateregistry.bin 中。 打开 regedit.exe 并按照以下说明加载所需 Visual Studio 安装的专用注册表配置单元:编辑 Visual Studio 实例的注册表

注册自定义工具

  1. 在 Visual Studio 本地注册表或系统注册表的 HKEY_CLASSES_ROOT 下注册自定义工具 DLL。

    例如,下面是 Visual Studio 附带的托管 MSDataSetGenerator 自定义工具的注册信息:

    [HKEY_LOCAL_MACHINE\{hive}\SOFTWARE\Microsoft\VisualStudio\17.0_**_Config\CLSID\{E76D53CC-3D4F-40A2-BD4D-4F3419755476}]
    @="COM+ class: Microsoft.VSDesigner.CodeGenerator.TypedDataSourceGenerator.DataSourceGeneratorWrapper"
    "InprocServer32"="C:\\WINDOWS\\system32\\mscoree.dll"
    "ThreadingModel"="Both"
    "Class"="Microsoft.VSDesigner.CodeGenerator.TypedDataSourceGenerator.DataSourceGeneratorWrapper"
    "Assembly"="Microsoft.VSDesigner, Version=17.0.0.0, Culture=Neutral, PublicKeyToken=b03f5f7f11d50a3a"
    

    {hive} 是你在注册表编辑器中加载 privateregistry.bin 时提供的名称,实例文件夹(此处显示为 17.0_**_Config)特定于计算机上 Visual Studio 的特定安装。

  2. 在 Generators\GUID 下的所需 Visual Studio 配置单元中创建注册表项,其中 GUID 是由特定语言的项目系统或服务定义的 GUID。 密钥的名称将成为自定义工具的编程名称。 自定义工具键具有以下值:

    • (默认值)

      可选。 提供自定义工具的用户友好的说明。 此参数是可选的,但推荐使用。

    • CLSID

      必需。 指定实现 IVsSingleFileGenerator 的 COM 组件的类库的标识符。

    • GeneratesDesignTimeSource

      必需。 指示此自定义工具生成的文件中的类型是否可供可视化设计器使用。 对于不能供可视化设计器使用的类型,此参数的值必须为零 (0);对于可供可视化设计器使用的类型,此参数的值必须为一 (1)。

    注意

    必须为希望自定义工具可用的每种语言分别注册自定义工具。

    例如,MSDataSetGenerator 为每种语言注册一次:

    [HKEY_LOCAL_MACHINE\{hive}\SOFTWARE\Microsoft\VisualStudio\17.0_**_Config\Generators\{164b10b9-b200-11d0-8c61-00a0c91e29d5}\MSDataSetGenerator]
    @="Microsoft VB Code Generator for XSD"
    "CLSID"="{E76D53CC-3D4F-40a2-BD4D-4F3419755476}"
    "GeneratesDesignTimeSource"=dword:00000001
    
    [HKEY_LOCAL_MACHINE\{hive}\SOFTWARE\Microsoft\VisualStudio\17.0_**_Config\Generators\{fae04ec1-301f-11d3-bf4b-00c04f79efbc}\MSDataSetGenerator]
    @="Microsoft C# Code Generator for XSD"
    "CLSID"="{E76D53CC-3D4F-40a2-BD4D-4F3419755476}"
    "GeneratesDesignTimeSource"=dword:00000001