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

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, a configuração da compilação e a configuração de depuração.

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.Specifically, the properties listed in CSharpProjectConfigurationProperties4, VBProjectConfigurationProperties4, JSharpProjectConfigurationProperties3, and ProjectConfigurationProperties3 enable you to control the project properties found on the Build (Compile for Visual Basic projects) and Debug Properties window panes of the Properties page of the currently active configuration.

Você também pode escolher uma configuração diferente, não é atualmente ativo, 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# e Visual J# projetos são definidos em CSharpProjectConfigurationProperties4 e JSharpProjectConfigurationProperties3, respectivamente. The CodePage, DisableLangXtns, JCPA, e SecureScoping propriedades são específicas para Visual J# somente projetos. The ErrorReport e LanguageVersion propriedades são específicas para Visual C# somente projetos. O restante das propriedades em CSharpProjectConfigurationProperties3 e JSharpProjectConfigurationProperties3 são sistema autônomo mesmas propriedades no ProjectConfigurationProperties3.

Essas propriedades de configuração não podem ser acessadas por diretamente a projeção um Property objeto para um CSharpProjectConfigurationProperties3, JSharpProjectConfigurationProperties3, ou ProjectConfigurationProperties3 objeto. Em vez disso, você pode acesso essas propriedades, passando o nome do item de configuração sistema autônomo uma seqüência de caracteres, sistema autônomo 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 ambos o CSharpProjectConfigurationProperties3.EnableSQLServerDebugging, JSharpProjectConfigurationProperties3.EnableSQLServerDebugging, ou ProjectConfigurationProperties3.EnableSQLServerDebugging propriedade dependendo se a proj Define a variável de um Visual C#, Visual J#, ou Visual Basic projeto.

Na verdade, sistema autônomo propriedades de configuração definidos no CSharpProjectConfigurationProperties3, JSharpProjectConfigurationProperties3, ou ProjectConfigurationProperties3 são uma lista de referência de propriedades de configuração disponível para projetos específicos que podem ser acessados sistema autônomo itens de propriedade de configuração de projeto por meio de Properties coleção.

As etapas abaixo do detalhe como programaticamente acesso as propriedades de configuração da configuração ativo no momento 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 acessar propriedades de configuração para 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 sistema.Windows.Forms, VSLangProj, VSLangProj2, and VSLangProj80e clicar OK.

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

    using VSLangProj;
    using VSLangProj2;
    using VSLangProj80;
    using VSLangProj90;
    using System.Windows.Forms;
    
  4. Adicione a seguinte telefonar 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#, Visual J#, 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());
            }
            if (project.Kind == PrjKind2.prjKindVJSharpProject)
            {
                MessageBox.Show("The project is a Visual J# Project");
                prop = configProps.Item("CodePage");
                MessageBox.Show("The code page value is : " 
    + prop.Value.ToString());
                MessageBox.Show
    ("Setting the code page value to my code page");
                prop.Value = "my code page";
                MessageBox.Show("The code page 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 as define e obtém o WarningLevel propriedade. Se o projeto for um Visual C# projeto, o método VSProjectConfigProperties define e obtém o LanguageVersion propriedade. Se o projeto for um Visual J# projeto, o método define e obtém o CodePage propriedade.

  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 nível de aviso foi alterado, clicando em Propriedades on the Projeto menu e, em seguida, selecionar o Compilação guia o Propriedades janela.

    The Nível de aviso campo reflete a alterar feita por meio de programação.

  10. Para validar a configuração de versão de linguagem para um Visual C# projeto, nas Compilação painel do Propriedades janela, clicar Avançado.

    The Versão de linguagem campo de do Configurações avançadas de compilaçãocaixa de diálogo refletirá a alterar do suplemento feito.

  11. Para validar a alterar para a configuração de página de código de um Visual J# projeto, nas Compilação painel do Propriedades janela, clicar Avançado.

    The Página de código campo de do Configurações avançadas de compilaçãocaixa de diálogo refletirá a alterar a esta propriedade.

Exemplo

O exemplo a seguir é um básico Visual Studio suplemento que demonstra como acesso propriedades de um tipo específico de projeto por meio de automação em Visual Studio.

using System;
using Extensibility;
using EnvDTE;
using EnvDTE80;
using System.Windows.Forms;
using VSLangProj;
using VSLangProj2;
using VSLangProj80;
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#, Visual J#, 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());
        }
        if (project.Kind == PrjKind2.prjKindVJSharpProject)
        {
            MessageBox.Show("The project is a Visual J# Project");
            prop = configProps.Item("CodePage");
            MessageBox.Show("The code page value is : " 
+ prop.Value.ToString());
            MessageBox.Show
("Setting the code page value to my code page");
            prop.Value = "my code page";
            MessageBox.Show("The code page 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)
    VSProjectConfigProperties(_applicationObject)
End Sub
Sub VSProjectConfigProperties(ByVal dte As DTE2)
    ' Open a Visual C#, Visual J#, 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
        If project.Kind = PrjKind2.prjKindVJSharpProject Then
            MsgBox("The project is a Visual J# Project")
            prop = configProps.Item("CodePage")
            MsgBox("The code page value is : "  _
            & prop.Value.ToString())
            MsgBox("Setting the code page value to my code page")
            prop.Value = "my code page"
            MsgBox("The code page 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