Partilhar via


Introduction to Project Extensibility

O modelo de objeto está disponível pela simples adição de referências aos assemblies VSLangProj ao seu projeto: conjuntos de VSLangProj.dll, VSLangProj2.dll, VSLangProj80.dll, VSLangProj90a.dll e VSLangProj100.dll.Para mais informações, consulte Como: Adicionar ou remover referências usando a caixa de diálogo Adicionar referência.Isso significa que o modelo de objeto está disponível para suplementos e qualquer tipo de projeto que deve estender ou automatizar o IDE.Os exemplos nos tópicos são escritos na Visual Basic e Visual C# idiomas.Para obter mais informações sobre como executar os exemplos, consulte Como: compilar e executar os exemplos de código de modelo de objeto de automação.Suplementos podem ser escritos em qualquer Visual Studio hospedada, como o idioma, Visual Basic, Visual C#, e Visual C++.Os tópicos de referência para o VSLangProj, VSLangProj2, VSLangProj80, VslangProj90 e VslangProj100 os membros incluem a sintaxe para cada um desses idiomas.Para uma descrição dos tipos de projeto de automação e recursos de automação, consulte A criação de suplementos e assistentes.

Espaços para nome do VSLangProj

Esses espaços para nomes contêm todas as classes, interfaces e enumerações para Visual Basic e Visual C# projetos.Para obter uma lista completa dos objetos no namespace, consulte Visual Basic e Visual C# objeto modelo de extensibilidade para projetos.

Possível erro usando os Assemblies VSLangProj com EnvDTE Assembly

Se você criar um projeto que faz referência a um ou mais dos assemblies VSLangProj e o EnvDTE assembly, você pode ocasionalmente obter o seguinte erro em tempo de execução:

"Exceção sem tratamento: System.IO.FileNotFoundException: erro ao carregar o arquivo ' EnvDTE, versão = 7.0.3300.0"

Este erro é devido a um conflito de resolução de tipo tempo de execução .Ou seja, a versão do EnvDTE incluída no Visual Studio 2005 é 8.0.xx, mas a referência de configuração do projetoestá procurando por uma versão anterior deste assembly, versão 7.0.xx.Para corrigir esse problema, você deve adicionar um redirecionamento de ligação para a versão mais recente do EnvDTE para o arquivo de configuração (. config) do seu projeto.Isso permitirá que Visual Studio para carregar a versão mais recente do EnvDTE e evitar que o erro ocorra.

Para fazer isso, adicione um "arquivo de configuração do aplicativo" para seu projeto e substituir seu conteúdo com o seguinte:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-
        com:asm.v1" appliesTo="v2.0.50318">
            <dependentAssembly>
                <assemblyIdentity name="EnvDTE" publicKeyToken=
                "b03f5f7f11d50a3a"/>
                <bindingRedirect oldVersion="7.0.3300.0" 
                newVersion="8.0.0.0"/>
            </dependentAssembly>
        </assemblyBinding>
    </runtime>
</configuration>

Objeto VSProject2

Este objeto fornece acesso a outros objetos no modelo de extensibilidade .O objeto do DTE é o objeto de nível superior na Visual Studio modelo de automação.No modelo de extensibilidade de geral, um projeto é representado por genérico Project objeto. O Project objeto tem um Object propriedade. O tipo desta propriedade é determinado em tempo de execução de linguagem do projeto.Em um Visual Basic ou Visual C#do projeto, o Object propriedade retorna um objeto do tipo VSProject2. Desde o tipo da Object propriedade é o objeto, você deve converter a referência ao tipo VSProject2. Depois que você faz referência a VSProject2 item, você pode manipular as propriedades do projeto, configurações, arquivos, pastas, instruções imports e referências.

Para mais informações, consulte Introdução ao objeto VSProject2.

Referências e objetos de referência

O References propriedade, contido no VSProject2 objeto, contém uma coleção de Reference3 objetos. O Reference3 objeto representa uma referência de projeto e é principalmente um somente leituradeobjeto que ofereça suporte a uma Remove método. O References objeto tem suporte para adicionar referências (COM,.NET assemblies, ActiveX, outros projetos) e gerar eventos (adição, remoção e alteração de referências).

O References objeto não contém as referências da Web de um projeto. Referências Web de um projetopoderão ser recuperadas, acessando o ProjectItemsa propriedade da WebReferencesFolder propriedade.

Para obter mais informações e exemplos de código, consulte Reference e Reference3o objeto, References coleção, Referencesde propriedade, e WebReferencesFolder propriedade.

Objeto de importações

O Imports propriedade contida pelo VSProject2 objeto mantém uma coleção de Imports declarações que aplicar a toda uma Visual Basic projeto. Se uma demonstrativo de importação for adicionado a esta coleção, correspondente a Imports demonstrativo (por exemplo, Imports VSLangProj) não precisa ser adicionado ao arquivo de código. Este objeto oferece suporte adicionando e removendo instruções imports e geração de eventos em resposta a adição e remoção de instruções.Há nenhum equivalente em um Visual C#do projetoe o VSProject2.Importsretorna a propriedade Nothing ou null quando aplicado a uma Visual C# projeto. Para mais informações, consulte Imports.

Objetos de BuildManager e VSProjectItem

O VSProjectItem objeto é a contraparte doitem de projetoda VSProject2 objeto. No modelo de extensibilidade de geral, a genérica ProjectItem objeto representa umitemde projeto. O Object propriedade é do tipo Object e, em um Visual Basic ou Visual C#do projeto, o tipo desta propriedade é VSProjectItem. O VSProjectItem objeto contém propriedades que o link para oitem de projetode pai e de projetoe de um método que força a execução de uma ferramenta personalizada nesse item. O BuildManager objeto lida com a saída da ferramenta personalizada. Para obter mais informações, consulte RunCustomTool método, Introdução ao objeto BuildManager, VSProjectItemo objeto, e BuildManager objeto.

Propriedade Properties

O modelo de extensibilidade de geral tem um Propertiesde propriedade em três objetos:

  • Project objeto   As propriedades deste objeto são equivalentes às propriedades encontradas na Propriedades comuns guia da caixa de diálogo de Property Pages do projetono IDE.

  • Configuration objeto   As propriedades deste objeto são equivalentes às propriedades encontradas na Propriedades de configuração guia da caixa de diálogo de Property Pages do projetono IDE.

  • ProjectItem objeto   As propriedades deste objeto são equivalentes às propriedades encontradas na Propriedadesjanela quando umitem de projetoé selecionado na Solution Explorer.

  • Em cada maiúsculas e minúsculas a Properties propriedade é uma coleção de objetos do tipo de propriedade. A Property objeto pode ser obtido da coleção , especificando o índice de base 1 da propriedadeou de seu nome. O conteúdo da coleção depende do idioma.No maiúsculas e minúsculas de itens de projeto , o conteúdo também depende se o item é um arquivo ou pasta.

Consulte também

Conceitos

Espectro de automação de Visual Studio

Outros recursos

A criação de suplementos e assistentes