Partilhar via


Como: Propriedades de acesso de tipos específicos do projeto

The Visual Studio modelo de automação geral fornece o Properties coleção que pode ser usada para acessar o Properties coleções 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 conjunto e examinar as propriedades do projeto manualmente, abra um projeto no Visual Studio ambiente de desenvolvimento integrado (IDE). Sobre o Projeto menu, clicar Propriedades.The Propriedades janela tem várias guias e cada painel lista propriedades que são usadas para definir e controle o comportamento de projetos.O modelo de automação permite controlar essas configurações por meio de programação.Especificamente, as propriedades em ProjectProperties3 permitem que você controle as propriedades de projeto encontradas no Aplicativo, Recursos, Configurações, Caminhos de referência and Assinatura painéis de janela do Propriedades página for Visual C# e Visual J# projetos. As propriedades definidas na VBProjectProperties3 permitem que você controle as configurações de propriedades de Visual Basic projetos, encontrado no Aplicativo, Recursos, Configurações, Referências and Assinatura painéis de janela do Propriedades página.

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

Essas propriedades não podem ser acessadas por diretamente a projeção um Properties 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 sistema autônomo uma seqüência de caracteres para especificar o Property. Por exemplo, o código, EnvDTE.Property prop = EnvDTE.Properties.Item("ApplicationIcon"); permite que você acesso o ApplicationIcon propriedade.

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

As etapas abaixo do detalhe como acesso essas propriedades por meio de programação em um Visual Studio suplemento.

Observação:

As caixas de diálogo e comandos de menu demonstradas podem ser diferentes daqueles descritas na Ajuda, dependendo das configurações ativas ou configurações de edição.Esses procedimentos foram desenvolvidos com o Geral Development Settings ativo.Para alterar as configurações, escolher Importar e exportar configurações on the Ferramentas menu.Para obter mais informações, consulte Configurações do Visual Studio.

Para acesso propriedades de um tipo específico de projeto

  1. Criar um Visual Studio Projeto suplemento usando Visual C#.

  2. Sobre o Projeto menu, clicar Adicionar referência, clicar no NET guia, selecionar VSLangProj, VSLangProj2, and VSLangProj80, and clicar OK.

  3. Adicione as seguintes-instruções using na parte superior do arquivo conectar.cs.

    using VSLangProj;
    using VSLangProj2;
    using VSLangProj80;
    
  4. Adicione a seguinte telefonar de método para o método OnConnection.

    _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#, Visual J#, 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);
        }
    }
    

    O método VSProjectProperties define e obtém o AssemblyName propriedade passando-na sistema autônomo um Property item da cadeia de caracteres para o Properties coleção. Se o projeto for um Visual Basic 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 Criar solução on the Compilação Menu.

  7. Abra um Visual C#, Visual J#, ou Visual Basic projeto na Visual Studio IDE.

  8. Sobre o Ferramentas menu, clicar Gerenciador de suplementoe selecionar seu suplemento a partir de Gerenciador de suplemento caixa de diálogo.clicar OK para executar seu suplemento.

  9. Validar que o nome do assembly foi alterado, clicando em Propriedades on the Projeto menu e, em seguida, selecionar o Aplicativo guia o Propriedades janela.

    The Nome do assembly campo reflete a alterar feita por meio de programação.

Exemplo

O exemplo a seguir é um básico Visual Studio suplemento que demonstra como acessar as propriedades que são específicas para tipos de projeto por meio de automação em Visual Studio.

using System;
using System;
using Extensibility;
using EnvDTE;
using EnvDTE80;
using System.Windows.Forms;
using VSLangProj;
using VSLangProj2;
using VSLangProj80;
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#, Visual J#, 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 VSLangProj
Imports VSLangProj2
Imports VSLangProj80

    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#, Visual J#, 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 este código criar um novo Visual Studio Projeto suplemento 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: Controlarar Adicionar-ins com o Adicionar - in Gerente.

Consulte também

Conceitos

Propriedades do projeto

Outros recursos

Acesso projeto tipo projeto específico, item de projeto e propriedades de configuração