Поделиться через


Регистрация генераторов одного файла

Чтобы сделать пользовательский инструмент доступным в Visual Studio, необходимо зарегистрировать его, чтобы Visual Studio могли создать экземпляр и связать его с определенным типом проекта.

Реестр для Visual Studio находится в частном кусте, privateregistry.bin. Откройте regedit.exe и следуйте приведенным ниже инструкциям, чтобы загрузить куст частного реестра для требуемой установки Visual Studio: редактирование реестра для экземпляра Visual Studio.

Регистрация пользовательского средства

  1. Зарегистрируйте библиотеку 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 на компьютере.

  2. Создайте раздел реестра в требуемом кусте 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