若要使自定义工具在 Visual Studio 中可用,必须对其进行注册,以便 Visual Studio 可以实例化它并将其与特定项目类型相关联。
Visual Studio 的注册表位于私有配置单元 privateregistry.bin 中。 打开 regedit.exe 并按照以下说明加载专用注册表配置单元以安装 Visual Studio: 编辑 Visual Studio 实例的注册表。
注册自定义工具
在 Visual Studio 本地注册表(在 HKEY_LOCAL_MACHINE 下加载)或系统注册表(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 的特定安装。在生成器\GUID 下的所需 Visual Studio 配置单元中创建注册表项,其中 GUID 是由特定语言的项目系统或服务定义的 GUID。 密钥的名称将成为自定义工具的编程名称。 自定义工具键具有以下值:
(默认值)
可选。 提供自定义工具的用户友好说明。 此参数是可选的,但建议使用。
CLSID
必填。 指定实现 IVsSingleFileGenerator的 COM 组件的类库的标识符。
设计时源生成器
必填。 指示此自定义工具生成的文件中的类型是否可供视觉设计器使用。 对于不能供视觉设计器使用的类型,此参数的值必须为(零)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