Регистрация генераторов одного файла
Чтобы сделать пользовательский инструмент доступным в Visual Studio, необходимо зарегистрировать его, чтобы Visual Studio могли создать экземпляр и связать его с определенным типом проекта.
Реестр для Visual Studio находится в частном кусте, privateregistry.bin. Откройте regedit.exe и следуйте приведенным ниже инструкциям, чтобы загрузить куст частного реестра для требуемой установки Visual Studio: редактирование реестра для экземпляра Visual Studio.
Регистрация пользовательского средства
Зарегистрируйте библиотеку DLL пользовательского средства в локальном реестре Visual Studio или в системном реестре в HKEY_CLASSES_ROOT.
Например, вот сведения о регистрации для управляемого пользовательского средства MSDataSetGenerator, который поставляется с Visual Studio:
[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 на компьютере.Создайте раздел реестра в требуемом кусте Visual Studio в разделе "Генераторы\GUID ", где GUID является GUID , определенный системой проекта или службой конкретного языка. Имя ключа становится программным именем пользовательского средства. Пользовательский ключ средства имеет следующие значения:
(по умолчанию)
Необязательно. Предоставляет понятное описание пользовательского инструмента. Этот параметр является необязательным, но рекомендуется.
CLSID
Обязательный. Указывает идентификатор библиотеки классов com-компонента, реализующего IVsSingleFileGenerator.
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