Compartilhar via


Como: propriedades de configuração de acesso para tipos específicos de projetos

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 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 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 listadas no CSharpProjectConfigurationProperties4, VBProjectConfigurationProperties4, e ProjectConfigurationProperties3 permitem controlar as propriedades de projeto encontradas na Build (Compilar para Visual Basic projetos) e DebugPropriedades 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# somente de projetos.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 a 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 configuração de propriedade por meio do projeto 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 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 de configuração para um tipo específico de projeto

  1. Criar um Visual Studio projeto de suplemento usando Visual C# e selecionando a opção para carregar o suplemento ao iniciar o Visual Studio.

  2. Sobre o projeto menu, clique em Add Reference, clique no .NET guia, selecione System.Windows.Forms, VSLangProj, VSLangProj2, e VSLangProj80e 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 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 o valor da propriedade.Ele tanto define e 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. 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 nível de aviso foi alterado, clicando em Propriedades na projeto menu e, em seguida, selecionando o Build guia o Propriedades janela.

    O nível de aviso de 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, no Build painel do Propriedades janela, clique na Avançado.

    O Versão de idioma campo o Configurações avançadas de compilação caixa de diálogo refletirá a alteração seu suplemento feita.

Exemplo

O exemplo a seguir é um basic Visual Studio suplemento que demonstra como acessar as propriedades para um tipo específico de projeto por meio de 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 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