Compartilhar via


Anatomia de uma extensão do Visual Studio

Um pacote VSIX é um arquivo .vsix que contém uma ou mais extensões do Visual Studio e os metadados que o Visual Studio usa para classificar e instalar as extensões. O formato de pacote VSIX segue o padrão OPC (Open Packaging Conventions), o que significa que ele pode ser aberto por qualquer ferramenta que possa abrir arquivos ZIP.

Um projeto de extensão é um projeto C# com alguns extras que o tornam exclusivo. O vídeo a seguir explora um projeto de extensão para entender melhor como os projetos de extensão funcionam:

Estrutura do arquivo

Ao criar novas extensões usando o modelo Projeto VSIX com Comando (Comunidade), a estrutura de arquivos fica da seguinte forma:

Estrutura de arquivos de um projeto VSIX.

O arquivo .vsixmanifest é o arquivo principal. É um arquivo XML que contém informações sobre a extensão usada pelo Visual Studio. Todos os componentes da extensão são registrados no arquivo .vsixmanifest. É o único arquivo obrigatório em um projeto VSIX.

O arquivo VSCommandTable.vsct é onde os comandos são declarados. É um arquivo XML e contém as definições de comandos de botão, menus, atalhos de teclado e muito mais. O arquivo compila seu conteúdo em um blob no .dll de saída que o Visual Studio usa para construir toda a sua estrutura de menu da tabela de comandos. Esse arquivo declara apenas os componentes na tabela de comandos, ele não lida com nenhuma invocação de comando.

O arquivo *Package.cs é a classe Package, que é o ponto de entrada para a maioria das extensões. Aqui, você costuma encontrar manipuladores de comandos, janelas de ferramentas, páginas de opções, serviços e outros componentes registrados.

Compilação

O projeto é compilado em um arquivo .vsix localizado na pasta /bin/debug ou /bin/release, que depende da configuração atual do build da solução. A carga de trabalho de desenvolvimento de extensão do Visual Studio fornece destinos e tarefas dedicados do MSBuild para lidar com o tipo de projeto VSIX.

Quando o projeto VSIX é compilado, ele se implanta automaticamente na Instância Experimental. Isso pode ser controlado nas configurações do projeto VSIX:

Propriedades do projeto VSIX.

Instância Experimental

Para proteger seu ambiente de desenvolvimento do Visual Studio contra aplicativos não testados que podem alterá-lo, o VSSDK fornece um espaço experimental que você pode usar para fazer testes. Você desenvolve novos aplicativos usando o Visual Studio como de costume, mas os executa usando essa instância experimental.

Cada aplicativo que tem um pacote VSIX inicia a instância experimental do Visual Studio no modo de depuração.

Se você quiser iniciar a instância experimental do Visual Studio fora de uma solução específica, execute o seguinte comando na janela de comando:

devenv.exe /RootSuffix Exp

Para obter mais conceitos de extensibilidade, confira os recursos úteis e convenientes para seguir este kit de ferramentas.