How to: Configuração de acesso, Propriedades para tipos específicos de projetos

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 controlar as configurações de segurança, a configuração de compilação e configuração de depuração.

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 permite que você a controlar essas configurações por meio de programação. Especificamente, as propriedades listadas no CSharpProjectConfigurationProperties4, VBProjectConfigurationProperties4, e ProjectConfigurationProperties3 permitem controlar as propriedades do projeto encontradas na Build (compilar para Visual Basic projetos) e Debug Propriedades painéis de janela do Propriedades página da configuração ativa no momento.

Você também pode escolher uma configuração diferente, não é atualmente ativa, acessando o ConfigurationManager objeto. Para obter mais informações, consulte Como: criar a solução e configurações de compilação do projeto.

Propriedades de configuração para Visual C# projetos são definidos em CSharpProjectConfigurationProperties4. O ErrorReport e LanguageVersion propriedades são específicas para Visual C# projetos somente. O restante das propriedades em CSharpProjectConfigurationProperties3 são as mesmas propriedades no ProjectConfigurationProperties3.

Essas propriedades de configuração não podem ser acessadas por projeção diretamente um Property o objeto para um CSharpProjectConfigurationProperties3 ou ProjectConfigurationProperties3 objeto. Em vez disso, você pode acessar essas propriedades, passando o nome do item de configuração como uma seqüência de caracteres, como mostrado abaixo:

    EnvDTE.Project proj;
    EnvDTE.Configuration config;
    EnvDTE.Properties configProps;
    EnvDTE.Property prop;
    proj = DTE.Solution.Projects.Item(1);
    config = proj.ConfigurationManager.ActiveConfiguration;
    configProps = config.Properties;
    prop = configProps.Item("EnableSQLServerDebugging")

Este código acessa um o CSharpProjectConfigurationProperties3.EnableSQLServerDebugging ou ProjectConfigurationProperties3.EnableSQLServerDebugging propriedade dependendo se a proj define a variável de um Visual C# ou Visual Basic project.

Na verdade, as propriedades de configuração é definido em CSharpProjectConfigurationProperties3 ou ProjectConfigurationProperties3 são uma lista de referência de propriedades de configuração disponíveis para projetos específicos que podem ser acessados como itens de propriedade de configuração de projeto por meio de Properties coleção.

As etapas a seguir detalham como acessar programaticamente as propriedades de configuração da configuração ativa no momento 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 de configuração para um tipo específico de projeto

  1. Criar um Visual Studio projeto usando o Add-in Visual C# e selecionando a opção para carregar o suplemento quando Visual Studio é iniciado.

  2. Sobre o projeto menu, clique em Add Reference, clique o .NET guia, selecione System.Windows.Forms, VSLangProj, VSLangProj2, e VSLangProj80e 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 a seguinte chamada de função para a função OnConnection.

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

    public void VSProjectConfigProperties(DTE2 dte)
    {
        try
        {
            // Open a Visual C# or Visual Basic project
            // before running this add-in.
            Project project;
            Configuration config;
            Properties configProps;
            Property prop;
            project = _applicationObject.Solution.Projects.Item(1);
            config = project.ConfigurationManager.ActiveConfiguration;
            configProps = config.Properties;
            prop = configProps.Item("PlatformTarget");
            MessageBox.Show("The platform target for this project is: "
     + prop.Value.ToString());
            prop = configProps.Item("WarningLevel");
            MessageBox.Show
    ("The warning level for this project is set to: " 
    + prop.Value.ToString());
            MessageBox.Show("Changing the warning level to 3...");
            prop.Value = "3";
            MessageBox.Show
    ("The warning level for this project is now set to: " 
    + prop.Value.ToString());
            if (project.Kind == PrjKind.prjKindCSharpProject)
            {
                MessageBox.Show("The project is a Visual C# Project");
                prop = configProps.Item("LanguageVersion");
                MessageBox.Show("The language version value is : " 
    + prop.Value.ToString());
                MessageBox.Show("Setting the language version to 
    ISO-1");
                prop.Value = "ISO-1";
                MessageBox.Show("The language version value is now: " 
    + prop.Value.ToString());
            }
    
        }
        catch(Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }
    

    O método VSProjectConfigProperties obtém e exibe o PlatformTarget valor da propriedade. Ele define tanto obtém o WarningLevel propriedade. Se o projeto for um Visual C# o projeto, o método VSProjectConfigProperties define e obtém o LanguageVersion propriedade.

  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 nível de aviso foi alterado, clicando em Propriedades na projeto menu e, em seguida, selecionando o Build guia o Propriedades janela.

    O o nível de aviso o campo reflete a alteração feita por meio de programação.

  10. Para validar a configuração de versão de idioma para um Visual C# do projeto, na Build painel da Propriedades janela, clique em Avançado.

    O A versão de idioma campo o Configurações avançadas de compilação caixa de diálogo refletirá a alteração, o add-in feito.

Exemplo

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

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;
public void OnConnection(object application, 
ext_ConnectMode connectMode, object addInInst, ref Array custom)
{
    _applicationObject = (DTE2)application;
    _addInInstance = (AddIn)addInInst;
    VSProjectConfigProperties(_applicationObject);
}
public void VSProjectConfigProperties(DTE2 dte)
{
    try
    {
        // Open a Visual C# or Visual Basic project
        // before running this add-in.
        Project project;
        Configuration config;
        Properties configProps;
        Property prop;
        project = _applicationObject.Solution.Projects.Item(1);
        config = project.ConfigurationManager.ActiveConfiguration;
        configProps = config.Properties;
        prop = configProps.Item("PlatformTarget");
        MessageBox.Show("The platform target for this project is: 
" + prop.Value.ToString());
        prop = configProps.Item("WarningLevel");
        MessageBox.Show
("The warning level for this project is set to: " 
+ prop.Value.ToString());
        MessageBox.Show("Changing the warning level to 3...");
        prop.Value = "3";
        MessageBox.Show
("The warning level for this project is now set to: " 
+ prop.Value.ToString());
        if (project.Kind == PrjKind.prjKindCSharpProject)
        {
            MessageBox.Show("The project is a Visual C# Project");
            prop = configProps.Item("LanguageVersion");
            MessageBox.Show("The language version value is : " 
+ prop.Value.ToString());
            MessageBox.Show("Setting the language version to ISO-1");
            prop.Value = "ISO-1";
            MessageBox.Show("The language version 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
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)
    VSProjectConfigProperties(_applicationObject)
End Sub
Sub VSProjectConfigProperties(ByVal dte As DTE2)
    ' Open a Visual C# or Visual Basic project
    ' before running this add-in.
    Try
        Dim project As Project
        Dim config As Configuration
        Dim configProps As Properties
        Dim prop As [Property]
        project = _applicationObject.Solution.Projects.Item(1)
        config = project.ConfigurationManager.ActiveConfiguration
        configProps = config.Properties
        prop = configProps.Item("PlatformTarget")
        MsgBox("The platform target for this project is: "  _
        & prop.Value.ToString())
        prop = configProps.Item("WarningLevel")
        MsgBox("The warning level for this project is set to: "  _
        & prop.Value.ToString())
        MsgBox("Changing the warning level to 3...")
        prop.Value = "3"
        MsgBox("The warning level for this project is now set to: " _
        & prop.Value.ToString())
        If project.Kind = PrjKind.prjKindCSharpProject Then
            MsgBox("The project is a Visual C# Project")
            prop = configProps.Item("LanguageVersion")
            MsgBox("The language version value is : "  _
            & prop.Value.ToString())
            MsgBox("Setting the language version to ISO-1")
            prop.Value = "ISO-1"
            MsgBox("The language version 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