Partilhar via


Como: propriedades de acesso de tipos específicos de projeto

O Visual Studio o modelo de automação geral fornece o Properties coleção que 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 as 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 do botão 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 permite controlar essas configurações por meio de programação.Especificamente, as propriedades no ProjectProperties3 permitem controlar as propriedades de projeto encontradas na aplicativo, recursos, configurações, Reference Paths e Signing painéis de janela da Propriedades de página para Visual C# projetos.As propriedades definidas na VBProjectProperties3 permitem que você controle as configurações de propriedades de Visual Basic projetos, encontrados no 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 somente de projetos.O restante das propriedades em VBProjectProperties3 são as mesmas propriedades no ProjectProperties3.

Essas propriedades não podem ser acessadas por diretamente a projeção um Properties o objeto para um ProjectProperties3 ou um VBProjectProperties3 objeto.Em vez disso, essas propriedades devem ser acessadas por meio do 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 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 de projeto.

As etapas a seguir detalham como acessar essas propriedades por meio de programação em um Visual Studio suplemento.

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 Configurações de Visual Studio.

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

  1. Criar um Visual Studio projeto de suplemento usando Visual C#.

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

  3. Adicione as seguintes-instruções using ao início 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. Construir o add-in, clicando em Build Solution sobre o Build Menu.

  7. Open a Visual C# or Visual Basic project in the 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 do Assembly o campo reflete a alteração feita por meio de programação.

Exemplo

O exemplo a seguir é um basic Visual Studio suplemento 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 o projeto de suplemento e substituir o código do método OnConnection com o código do exemplo.Para obter informações sobre como executar um suplemento, consulte Como: Add-Ins de controle, usando o Gerenciador de suplemento.

Consulte também

Outros recursos

Project Properties

Acessando as propriedades de configuração de projeto específico do tipo de projeto e Item de projeto