How to: Ao acessar Propriedades de tipos específicos de projeto

O Visual Studio o modelo de automação geral fornece a Properties coleção pode ser usada para acesso a Properties conjuntos de qualquer Visual Studio tipo de projeto. Entre outras coisas, propriedades do projeto permitem que você controle configurações de segurança, o nome do assembly e assim por diante.

Para definir e examinar as propriedades do projeto manualmente, abra um projeto na Visual Studio o ambiente de desenvolvimento integrado (IDE). Sobre o projeto menu clique Propriedades. O Propriedades janela possui várias guias e cada painel lista as propriedades que são usadas para definir e controlar o comportamento de projetos. O modelo de automação lhe permite controlar essas configurações por meio de programação. Especificamente, as propriedades de ProjectProperties3 permitem controlar as propriedades do projeto encontradas na aplicativo, recursos, configurações, Reference Paths e Signing painéis de janela da Propriedades página Visual C# projetos. As propriedades definidas na VBProjectProperties3 permitem que você controle as configurações de propriedades de Visual Basic projetos, encontrados na aplicativo, recursos, configurações, referências e Signing os painéis de janela da Propriedades página.

Propriedades de Visual C# projetos são definidos em ProjectProperties3. Propriedades de Visual Basic projetos são definidos em VBProjectProperties3. O MyApplication e MyType propriedades são específicas para Visual Basic projetos somente. O restante das propriedades em VBProjectProperties3 são as mesmas propriedades no ProjectProperties3.

Essas propriedades não podem ser acessadas por projeção diretamente um Properties o objeto para um ProjectProperties3 ou um VBProjectProperties3 objeto. Em vez disso, essas propriedades devem ser acessadas por meio de Properties coleção fornecendo o nome da propriedade para o tipo específico de projeto como uma seqüência de caracteres para especificar o Property. Por exemplo, o código, EnvDTE.Property prop = EnvDTE.Properties.Item("ApplicationIcon"); permite que você acesse o ApplicationIcon propriedade.

Na verdade, as propriedades são definidas em ProjectProperties3 e VBProjectProperties3 são uma lista de referência de propriedades disponíveis para projetos específicos que podem ser acessados como itens de propriedade do projeto.

As etapas a seguir detalham como acessar essas propriedades programaticamente em um Visual Studio add-in.

ObservaçãoObservação

As caixas de diálogo e comandos de menu demonstradas podem ser diferentes daqueles descritos na Ajuda, dependendo das configurações ativas ou configurações de edição. Esses procedimentos foram desenvolvidos com o General Development Settings ativo. Para alterar as configurações, escolha Import and Export Settings sobre o Ferramentas menu. Para obter mais informações, consulte Trabalhando com configurações.

Para acessar as propriedades para um tipo específico de projeto

  1. Criar um Visual Studio projeto usando o Add-in Visual C#.

  2. Sobre o projeto menu, clique em Add Reference, clique o .NET guia, selecione VSLangProj, VSLangProj2, e VSLangProj80, e Sytem.Windows.Forms e clique em OK.

  3. Adicione instruções a seguir usando-a para a parte superior do arquivo Connect. cs.

    using VSLangProj;
    using VSLangProj2;
    using VSLangProj80;
    using VSLangProj90;
    using VSLangProj100;
    using System.Windows.Forms;
    
  4. Adicione uma chamada para um novo método chamado VSProjectProperies para o método OnConnection após a linha que define o _addInstance método conforme mostrado:.

    _applicationObject = (DTE2)application;
    _addInInstance = (AddIn)addInInst;
    VSProjectProperties(_applicationObject);
    
  5. Adicione o método VSProjectProperties logo abaixo o método OnConnection.

    public void VSProjectProperties(DTE2 dte)
    {
        try
        {
            // Open a Visual C# or Visual Basic project
            // before running this add-in.
            Project project;
            project = _applicationObject.Solution.Projects.Item(1);
            Property prop;
            prop = project.Properties.Item("AssemblyName");
            MessageBox.Show("The assembly name is: " 
    + prop.Value .ToString());
            prop.Value = "MyTestAssembly";
            MessageBox.Show("The assembly name is now: " 
    + prop.Value.ToString());
            // If the project is a Visual Basic project, set
            // the MyApplication property.
            if (project.Kind == "{F184B08F-C81C-45F6-A5F6-5ABD9991F28F}")
    
            {
                MessageBox.Show("The project is a Visual 
    Basic Project");
                prop = project.Properties.Item("MyType");
                MessageBox.Show("The MyType value is: " 
    + prop.Value.ToString());
                prop.Value = "Class Library";
                MessageBox.Show("The MyType value is now: " 
    + prop.Value.ToString());
            }
        }
        catch(Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }
    

    O VSProjectProperties método define e obtém o AssemblyName propriedade por passá-lo como um Property item string para o Properties coleção. Se o projeto for um Visual Basic o projeto, o método VSProjectProperties também define e obtém o MyType propriedade.

    A seção exemplo lista o código completo.

  6. Criar o suplemento clicando em Build Solution sobre o Construir Menu.

  7. Abrir um Visual C# ou Visual Basic projeto na Visual Studio IDE.

  8. No Ferramentas menu, clique em Gerenciador de suplementose selecione o add-in da Gerenciador de suplementos caixa de diálogo. Clique em OK para executar seu suplemento.

  9. Validar que o nome do assembly foi alterado, clicando em Propriedades na projeto menu e, em seguida, selecionando o aplicativo guia o Propriedades janela.

    O nome de Assembly o campo reflete a alteração feita por meio de programação.

Exemplo

O exemplo a seguir é um basic Visual Studio add-in que demonstra como acessar as propriedades que são específicas para tipos de projeto, usando a automação em Visual Studio.

using System;
using System;
using Extensibility;
using EnvDTE;
using EnvDTE80;
using EnvDTE90;
using EnvDTE90a;
using EnvDTE100;
using System.Windows.Forms;
using VSLangProj;
using VSLangProj2;
using VSLangProj80;
using VSLangProj90;
using VSLangProj100;
namespace myAddin
    public void OnConnection(object application, 
ext_ConnectMode connectMode, object addInInst, ref Array custom)
    {
        _applicationObject = (DTE2)application;
        _addInInstance = (AddIn)addInInst;
        VSProjectProperties(_applicationObject);
    }
    public void VSProjectProperties(DTE2 dte)
    {
        try
        {
            // Open a Visual C# or Visual Basic project
            // before running this add-in.
            Project project;
            project = _applicationObject.Solution.Projects.Item(1);
            Property prop;
            prop = project.Properties.Item("AssemblyName");
            MessageBox.Show("The assembly name is: " 
+ prop.Value .ToString());
            prop.Value = "MyTestAssembly";
            MessageBox.Show("The assembly name is now: " 
+ prop.Value.ToString());
            // If the project is a Visual Basic project, set
            // the MyApplication property.
            if (project.Kind == PrjKind.prjKindVBProject)
            {
                MessageBox.Show
("The project is a Visual Basic Project");
                prop = project.Properties.Item("MyType");
                MessageBox.Show("The MyType value is: " 
+ prop.Value.ToString());
                prop.Value = "Class Library";
                MessageBox.Show("The MyType value is now: " 
+ prop.Value.ToString());
            }
        }
        catch(Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }
Imports System
Imports Microsoft.VisualStudio.CommandBars
Imports Extensibility
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports EnvDTE90a
Imports EnvDTE100
Imports VSLangProj
Imports VSLangProj2
Imports VSLangProj80
Imports VSLangProj90
Imports VSLangProj100

    Public Sub OnConnection(ByVal application As Object, _
 ByVal connectMode As ext_ConnectMode, ByVal addInInst As Object, _
 ByRef custom As Array) Implements IDTExtensibility2.OnConnection
        _applicationObject = CType(application, DTE2)
        _addInInstance = CType(addInInst, AddIn)
        VSProjectProperties(_applicationObject)
    End Sub
    Sub VSProjectProperties(ByVal dte As DTE2)
        ' Open a Visual C# or Visual Basic project
        ' before running this add-in.
        Try
            Dim project As Project
            project = _applicationObject.Solution.Projects.Item(1)
            Dim prop As [Property]
            prop = project.Properties.Item("AssemblyName")
            MsgBox("The assembly name is: "  _
            & prop.Value.ToString())
            prop.Value = "MyTestAssembly"
            MsgBox("The assembly name is now: "  _
            & prop.Value.ToString())
            ' If the project is a Visual Basic project, set
            ' the MyApplication property.
            If project.Kind = PrjKind.prjKindVBProject Then
                MsgBox("The project is a Visual Basic Project")
                prop = project.Properties.Item("MyType")
                MsgBox("The MyType value is: "  _
                & prop.Value.ToString())
                prop.Value = "Class Library"
                MsgBox("The MyType value is now: "  _
                & prop.Value.ToString())
            End If
        Catch ex As System.Exception
            MsgBox(ex.ToString)
        End Try
    End Sub

Compilando o código

Para compilar esse código, crie um novo Visual Studio Add-in do projeto e substitua o código do método OnConnection com o código de exemplo. Para obter informações sobre como executar um suplemento, consulte Como: controle de Adicionar-</c0>.

Consulte também

Conceitos

Propriedades do projeto

Outros recursos

Acessando as Propriedadesde configuração de projeto específico do Tipo de projeto e Item de projeto