Регистрация обработчиков команд сборки взаимодействия

VSPackage должен зарегистрировать в Visual Studio, чтобы интегрированная среда разработки (IDE) правильно перенаправила свои команды.

Реестр можно обновить вручную или с помощью файла регистратора (rgs). Для получения дополнительной информации см. Creating Registrar Scripts.

Платформа управляемого ProvideMenuResourceAttribute пакета (MPF) предоставляет эту функцию через класс.

  • Ресурсы ссылочного формата командной таблицы находятся в неуправляемых вспомогательных библиотеках пользовательского интерфейса.

Регистрация обработчика команд ДЛЯ VSPackage

VsPackage, выполняющий роль обработчика для команд на основе пользовательского интерфейса (UI), требует записи реестра с именем VSPackage GUID. Эта запись реестра указывает расположение файла ресурсов пользовательского интерфейса VSPackage и ресурса меню в этом файле. Сама запись реестра находится в разделе HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\<Version>\Menus, где< версия> — версия Visual Studio, например 9.0.

Примечание.

Корневой путь HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\<Version> можно переопределить с альтернативным корнем при инициализации оболочки Visual Studio. Дополнительные сведения об корневом пути см. в разделе "Установка VSPackages с помощью установщика Windows".

Запись реестра ресурсов CTMENU

Структура записи реестра:

HKEY_LOCAL_MACHINE\Software\VisualStudio\<Version>\
  Menus\
    <GUID> = <Resource Information>

<GUID> — это GUID VSPackage в форме {XXXXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXXXXXXX}.

<Сведения о> ресурсах состоят из трех элементов, разделенных запятыми. Ниже приведены следующие элементы:

<Путь к библиотеке DLL> ресурсов,< идентификатору> ресурса меню, <версии меню>

В следующей таблице описываются поля сведений о ресурсах<.>

Элемент Description
<Путь к библиотеке DLL ресурсов> Это полный путь к библиотеке DLL ресурсов, содержащей ресурс меню, или он остается пустым, указывая, что библиотека DLL ресурсов VSPackage должна использоваться (как указано в подразделе "Пакеты", где зарегистрирован сам VSPackage).

Обычно это поле остается пустым.
<Идентификатор ресурса меню> Это идентификатор CTMENU ресурса ресурса, который содержит все элементы пользовательского интерфейса для VSPackage, скомпилированный из VSCT-файла .
<Версия меню> Это число, используемое в качестве версии для CTMENU ресурса. Visual Studio использует это значение для определения необходимости повторного объединения содержимого CTMENU ресурса с кэшем всех CTMENU ресурсов. Повторная активация активируется с помощью команды установки devenv.

Изначально это значение должно быть равно 1 и увеличиваться после каждого изменения CTMENU ресурса и перед повторением.

Пример

Ниже приведен пример нескольких записей ресурсов:

HKEY_LOCAL_MACHINE\Software\VisualStudio\9.0Exp\
  Menus\
    {019971D6-4685-11D2-B48A-0000F87572EB} = ,1, 10
    {1b027a40-8f43-11d0-8d11-00a0c91bc942} = , 10211, 3