Registrando manipuladores de comando de assembly de interoperabilidade

Um VSPackage deve se registrar no Visual Studio para que o IDE (ambiente de desenvolvimento integrado) roteia seus comandos corretamente.

O registro pode ser atualizado por edição manual ou por meio de um arquivo de registrador (. rgs). Para obter mais informações, consulte Criando scripts de registrador.

A MPF (estrutura de pacote gerenciada) fornece essa funcionalidade por meio da ProvideMenuResourceAttribute classe.

Registro de manipulador de comando de um VSPackage

Um VSPackage atuando como um manipulador para comandos baseados na interface do usuário requer uma entrada de registro nomeada após o VSPackage GUID . Essa entrada de registro especifica o local do arquivo de recurso de interface do usuário do VSPackage e o recurso de menu dentro desse arquivo. A própria entrada do registro está localizada em HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\ <Version> \Menus, em que <Version> é a versão do Visual Studio , por exemplo, 9,0.

Observação

O caminho raiz de HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\ <Version> pode ser substituído por uma raiz alternativa quando o Visual Studio shell é inicializado. para obter mais informações sobre o caminho raiz, consulte installing VSPackages With Windows Installer.

A entrada do registro de recurso CTMENU

A estrutura da entrada do registro é:

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

<GUID> é o GUID do VSPackage no formato {XXXXXX-XXXX-XXXX-XXXX-xxxxxxxxx}.

<Resource Information> consiste em três elementos separados por vírgulas. Esses elementos são, em ordem:

<Path to Resource DLL>, <Menu Resource ID>, <Menu Version>

A tabela a seguir descreve os campos de <Resource Information> .

Elemento Descrição
<Path to Resource DLL> Este é o caminho completo para a DLL de recursos que contém o recurso de menu ou que é deixado em branco, indicando que a DLL de recurso do VSPackage deve ser usada (conforme especificado na subchave pacotes em que o VSPackage em si está registrado).

É personalizado deixar esse campo em branco.
<Menu Resource ID> Essa é a ID de recurso do CTMENU recurso que contém todos os elementos da interface do usuário para o VSPackage como compilado de um arquivo . vsct .
<Menu Version> Este é um número usado como uma versão para o CTMENU recurso. Visual Studio usa esse valor para determinar se ele precisa remesclar o conteúdo do CTMENU recurso com seu cache de todos os CTMENU recursos. Uma remesclagem é disparada executando o comando de instalação do devenv.

Esse valor deve inicialmente ser definido como 1 e incrementado após cada alteração no CTMENU recurso e antes que a remesclagem ocorra.

Exemplo

Aqui está um exemplo de algumas entradas de recurso:

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

Confira também