Artigo: 555391 - Última revisão: quarta-feira, 10 de Agosto de 2005 - Revisão: 1.0

Automatizar o Visual Studio.NET de fora do IDE HOW TO:

Author: Carlos Quintero MVP
Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Expandir tudo | Reduzir tudo

Sumário

Este artigo descreve como automatizar o Visual Studio.NET IDE de fora do IDE.

Sintomas

Este artigo descreve como automatizar o Visual Studio.NET IDE de fora do IDE.

Mais Informação

O Visual Studio. NET expõe um modelo de extensibilidade que pode ser utilizado para automatizá-lo. Esta Modelo objecto reside na assemblagem EnvDTE.dll, que pode explorar utilizando o localizador de objectos. A classe de raiz do modelo do objecto é EnvDTE.DTE, e assim é necessário instância desta classe para automatizá-lo.
 
Tem as seguintes formas para automatizar o Visual Studio.NET IDE:
 
Utilizar macros: as macros são escritos em VB.NET procedimentos que permitem para automatizar algumas tarefas a partir do IDE. Para escrever macros é utilizar o ' IDE de macros (ferramentas, macros, Menu IDE de macros). Para explorar e executar as macros é utilizar a janela Explorador de macro (ver, outros Windows, menu Macro Explorer). Macros fornecem uma instância implícita da classe EnvDTE.DTE DTE chamado.
 
Utilizar um suplemento do: um suplemento do é uma DLL compilada através um registo especial que é carregado pelo Visual Studio.NET e fornece novos comandos, barras de comandos e botões para efectuar novas acções.. O Visual Studio. NET transfere uma instância da classe EnvDTE.DTE para um método para o suplemento quando a ligação tem lugar.
 
Os métodos anteriores automatizar o IDE a partir do, mas é um método terceiro que podem ser utilizadas para automatizar o IDE por exemplo, de outra aplicação ou de um script a partir do exterior. Para efectuar este procedimento, em primeiro lugar é necessário criar uma instância da classe EnvDTE.DTE. Pode fazê-lo utilizando a função CreateObject da utilizem com a maioria dos idiomas, passando o ProgID da classe. A lista de ProgID disponível é o seguinte procedimento:
 
Para o Visual Studio.NET 2002: VisualStudio.DTE.7 " "
Para o Visual Studio.NET 2003: VisualStudio.DTE.7.1 " "
Para o Visual Studio 2005: VisualStudio.DTE.8.0 " "
 
Para a versão instalada mais alta do Visual Studio. NET, utilizaria o ProgID versão-independente VisualStudio.DTE " ".
 
Existem 2 propriedades importantes que controlam o comportamento do IDE enquanto estiver a automatizá-lo a partir do exterior:
 
DTE.MainWindow.Visible: Por predefinição, quando você criar uma instância do IDE, é invisível. Se pretender torná-la visível, tem de definir esta propriedade como true.
 
DTE.UserControl: Quando definido como verdadeiro, o ' IDE permanece aberto depois tiver terminado com a automatização. É útil se pretender abrir o ' IDE, executar algumas acções, e manter se aberto para o utilizador a continuar a utilizá-lo. Quando definido como FALSE, o objecto é lançado depois tiver terminado com a automatização.
 
As seguintes VBScript de exemplo mostra como criar e instância do VS.NET 2003 e mostrar o respectivo nome e versão:
 
 
Dim objDTE
 
' Cria uma instância do VS.NET IDE 2003
Definir objDTE = CreateObject("VisualStudio.DTE.7.1")
 
' Enquanto a instância está ainda invisível, mostram o respectivo nome e versão
MsgBox objDTE.Name & " " & objDTE.Version
 
' Torná-la visível e mantê-la aberta quando este script terminar
objDTE.MainWindow.Visible = True
objDTE.UserControl = TRUE
 
 
Referências:
 
Manipular o ambiente de desenvolvimento: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vsintro7/html/vxoriManipulatingDevelopmentEnvironment.asp
 
Automatização e referência Extensibility: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vsintro7/html/vxoriExtensibilityReference.asp

 

A informação contida neste artigo aplica-se a:
  • Microsoft Visual Studio .NET 2002 Enterprise Developer
  • Microsoft Visual Studio .NET 2002 Professional Edition
  • Microsoft Visual Studio .NET 2003 Enterprise Architect
  • Microsoft Visual Studio .NET 2003 Enterprise Developer
  • Microsoft Visual Studio .NET 2003 Professional Edition
Palavras-chave: 
kbpubmvp kbpubtypecca kbhowto KB555391 KbMtpt kbmt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Pedíamos-lhe o favor de preencher o formulário existente no fundo desta página caso tenha encontrado erros neste artigo e tenha possibilidade de colaborar no processo de aperfeiçoamento desta ferramenta. Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 555391  (http://support.microsoft.com/kb/555391/en-us/ )
Community Solutions ContentCOMMUNITY SOLUTIONS CONTENT DISCLAIMER
MICROSOFT CORPORATION AND/OR ITS RESPECTIVE SUPPLIERS MAKE NO REPRESENTATIONS ABOUT THE SUITABILITY, RELIABILITY, OR ACCURACY OF THE INFORMATION AND RELATED GRAPHICS CONTAINED HEREIN. ALL SUCH INFORMATION AND RELATED GRAPHICS ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT AND/OR ITS RESPECTIVE SUPPLIERS HEREBY DISCLAIM ALL WARRANTIES AND CONDITIONS WITH REGARD TO THIS INFORMATION AND RELATED GRAPHICS, INCLUDING ALL IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, WORKMANLIKE EFFORT, TITLE AND NON-INFRINGEMENT. YOU SPECIFICALLY AGREE THAT IN NO EVENT SHALL MICROSOFT AND/OR ITS SUPPLIERS BE LIABLE FOR ANY DIRECT, INDIRECT, PUNITIVE, INCIDENTAL, SPECIAL, CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF USE, DATA OR PROFITS, ARISING OUT OF OR IN ANY WAY CONNECTED WITH THE USE OF OR INABILITY TO USE THE INFORMATION AND RELATED GRAPHICS CONTAINED HEREIN, WHETHER BASED ON CONTRACT, TORT, NEGLIGENCE, STRICT LIABILITY OR OTHERWISE, EVEN IF MICROSOFT OR ANY OF ITS SUPPLIERS HAS BEEN ADVISED OF THE POSSIBILITY OF DAMAGES.