Compartilhar via


Componentes de um projeto de suplemento

Os suplementos do Visual Studio foram substituídos no Visual Studio 2013. Você deve atualizar seus suplementos para as extensões VSPackage. Para obter mais informações sobre atualização, consulte Perguntas frequentes: convertendo suplementos em extensões VSPackage.

Projetos de suplementos são projetos de Biblioteca de classes criados com o Assistente de Suplemento e compilados em DLLs. Os projetos de suplemento contêm um arquivo de código fonte chamado Conectar, que também é o nome da classe. A classe Connect implementa uma interface denominada IDTExtensibility2 que passa comandos entre o suplemento e o ambiente de desenvolvimento integrado (IDE) do Visual Studio.

IDTExtensibility2 tem cinco métodos que, quando implementados, atuam como eventos.

Método

Descrição

OnConnection

Esse método é chamado quando o suplemento é carregado no Visual Studio.

OnStartupComplete

Esse método é chamado quando o Visual Studio conclui o carregamento.

OnAddInsUpdate

Esse método é chamado quando um suplemento é carregado ou descarregado no Visual Studio.

OnBeginShutdown

Esse método é chamado quando o Visual Studio é fechado.

OnDisconnection

Esse método é chamado quando o suplemento é descarregado do Visual Studio.

Além da interface de IDTExtensibility2, a interface de IDTCommandTarget é implementada automaticamente se você marcar a opção de interface de usuário ao usar o Assistente de Suplemento para criar um suplemento. Se você optar por criar ou manipular barras de comando no suplemento, você também deverá implementar o namespace Microsoft.VisualStudio.CommandBars.

Método OnConnection

O método OnConnection é definitivamente o método mais importante usado nos projetos de suplemento, pois ele é chamado toda vez que um suplemento é carregado. Além disso, é usado para chamar outro código de automação no suplemento. O método OnConnection é passado a quatro parâmetros: Application, ConnectMode, AddInInst e custom. Application representa Visual Studio IDE. É convertido como um objeto de DTE2 com o nome, _applicationObject. Esse objeto representa o objeto principal no modelo de automação principal e fornece acesso a todos os seus tipos e membros. ConnectMode (cujos valores estão contidos em Extensibility.extConnectMode) representa a maneira na qual o suplemento está sendo carregado; ou seja, através da linha de comando, abrindo uma solução etc. AddInInst representa o próprio suplemento. O parâmetro custom é uma matriz na qual você pode opcionalmente passar dados para o suplemento.

Além de inicializar essas variáveis, o OnConnection também conterá o código para criar um comando para o suplemento no menu de Ferramentas se você tiver selecionado essa opção ao criá-lo com o Assistente de Suplemento.

Outros métodos de suplemento

Os outros quatro métodos de suplemento, que são definidos pelo Assistente de Suplemento, estão vazios por padrão. Para manipular eventos relacionados ao suplemento, você pode usar estes outros métodos para responder a eles. Por exemplo, você pode adicionar código ao método de OnAddInsUpdate para enviar uma notificação para outro procedimento quando um suplemento é fechado. Você pode chamar OnBeginShutdown para executar tarefas de limpeza quando o IDe Visual Studio está sendo fechado.

Quando você cria um suplemento e marca a opção "Deseja criar uma interface de usuário de barra de comandos para o suplemento?" (o que cria um comando para o suplemento no menu Ferramentas), a interface IDTCommandTarget é implementada. Dois métodos adicionais — QueryStatus e Exec — são adicionados ao projeto de suplemento para manipular as tarefas de comando. Esses métodos contêm uma pequena quantidade de código para ajudar a colocar o comando no menu Ferramentas e a responder a cliques de um usuário. QueryStatus notifica o suplemento da disponibilidade do comando. O método Exec é chamado quando um usuário clica no comando do suplemento no menu Ferramentas, portanto, é onde você deve adicionar código se desejar responder a esse evento.

Consulte também

Conceitos

Projetos de extensibilidade

Outros recursos

Criando suplementos e assistentes