Sdílet prostřednictvím


Postupy: Vlastnosti konfigurace přístupu pro konkrétní typy projektů

Model Visual Studio obecné automatizace poskytuje kolekci Properties, kterou lze použít pro přístup ke kolekcím Properties libovolného typu projektu Visual Studio.Mimo jiné vlastnosti projektu umožňují řídit nastavení zabezpečení, konfiguraci sestavení a konfiguraci ladění.

Chcete-li ručně nastavit a prozkoumat vlastnosti projektu, otevřete projekt v integrovaném vývojovém prostředí (IDE) Visual Studio.V nabídce Projekt klikněte na Vlastnosti.Okno Vlastnosti obsahuje několik záložek a každé podokno obsahuje vlastnosti, které se používají k definování a řízení chování projektů.Model automatizace umožňuje řídit tato nastavení programově.Konkrétně vlastnosti uvedené v CSharpProjectConfigurationProperties4, VBProjectConfigurationProperties4 a ProjectConfigurationProperties3 umožňují řídit vlastnosti projektu na stránce Sestavení (kompilace pro projekty Visual Basic) a podoknech Vlastnosti Ladění an stránce Vlastnosti aktivní konfigurace.

Můžete také zvolit jinou konfiguraci aktuálně neaktivní, přístupem k objektu ConfigurationManager.Další informace naleznete v tématu Postupy: Vytváření konfigurací sestavení řešení a projektu.

Konfigurace vlastností pro projekty Visual C#, které jsou definovány v CSharpProjectConfigurationProperties4.Vlastnosti ErrorReport a LanguageVersion jsou specifické pouze pro projekty Visual C#.Zbývající vlastnosti v CSharpProjectConfigurationProperties3 jsou stejné jako vlastnosti v ProjectConfigurationProperties3.

K těmto vlastnostem konfigurace nelze získat přístup přímým přetypováním objektu Property na objekt CSharpProjectConfigurationProperties3 nebo ProjectConfigurationProperties3.Místo toho můžete zobrazit tyto vlastnosti předáním názvu položky konfigurace jako řetězce, jak je ukázáno níže:

    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")

Tento kód má přístup k buď k vlastnosti CSharpProjectConfigurationProperties3.EnableSQLServerDebugging nebo ProjectConfigurationProperties3.EnableSQLServerDebugging podle toho, zda proměnná proj definuje projekt Visual C# nebo Visual Basic.

Ve skutečnosti konfigurační vlastnosti definované v CSharpProjectConfigurationProperties3 nebo ProjectConfigurationProperties3 jsou referenční seznam dostupných vlastností konfigurace pro konkrétní projekty, které mohou být přístupné jako konfigurační vlastnost položek prostřednictvím kolekce Properties.

Následující kroky podrobně popisují, jak získat programový přístup k vlastnostem aktuálně aktivní konfigurace v doplňku Visual Studio.

[!POZNÁMKA]

Váš počítač může zobrazit jiné názvy nebo umístění pro některé prvky uživatelského rozhraní sady Visual Studio v následujících pokynech.Tyto prvky jsou určeny verzí aplikace Visual Studio a použitým nastavením.Další informace naleznete v tématu Přizpůsobení nastavení pro vývoj v sadě Visual Studio.

Přístup k vlastnostem konfigurace pro konkrétní typ projektu

  1. Vytvořte zásuvný modul projektu Visual Studio pomocí Visual C# a vyberte možnost načíst doplněk, když se spustí aplikace Visual Studio.

  2. V nabídce Projekt klepněte na tlačítko Přidat odkaz, klepněte na kartu .NET, vyberte System.Windows.Forms, VSLangProj, VSLangProj2 a VSLangProj80 a klikněte na tlačítko OK.

  3. Na začátek souboru Connect.cs přidejte následující příkazy using.

    using VSLangProj;
    using VSLangProj2;
    using VSLangProj80;
    using VSLangProj90;
    using VSLangProj100;
    using System.Windows.Forms;
    
  4. Přidejte následující volání funkce do funkce OnConnection.

    _applicationObject = (DTE2)application;
    _addInInstance = (AddIn)addInInst;
    VSProjectConfigProperties(_applicationObject);
    
  5. Přidejte metodu VSProjectConfigProperties přímo pod metodu 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);
        }
    }
    

    Metoda VSProjectConfigProperties získá a zobrazí hodnotu vlastnosti PlatformTarget.Nastaví i získá vlastnost WarningLevel.Pokud se jedná o projekt Visual C#, metoda VSProjectConfigProperties nastaví a získá vlastnost LanguageVersion.

  6. Sestavte doplněk kliknutím na Sestavit řešení v nabídce Sestavení.

  7. Otevřete projekt Visual C# nebo Visual Basic v IDE Visual Studio.

  8. V nabídce Nástroje klepněte na tlačítko Správce doplňků a vyberte doplněk z dialogového okna Správce doplňků.Klepněte na tlačítko OK a spusťte tak doplněk.

  9. Ověřte, že byla změněna úroveň upozornění, kliknutím na Vlastnosti v nabídce Projektu a kliknutím na kartu Sestavení v okně Vlastnosti.

    Pole Úroveň pro upozornění odráží změnu, kterou jste provedli programově.

  10. Chcete-li ověřit nastavení jazykové verze pro projekt Visual C#, v podokně Sestavení okna Vlastnosti klikněte na Upřesnit.

    Pole Jazyková verze v dialogovém okně Upřesnit nastavení sestavení odráží změny v doplňku.

Příklad

Následující příklad je základní doplněk Visual Studio, který ukazuje, jak přistupovat k vlastnosti v konkrétním typu projektu pomocí automatizace 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

Probíhá kompilace kódu

Chcete-li tento kód zkompilovat, vytvořte nový projekt doplňku Visual Studio a nahraďte kód metody OnConnection kódem v příkladu.Další informace o spuštění doplňku naleznete v části Postupy: Řízení doplňků pomocí Správce doplňků.

Viz také

Další zdroje

Project Properties

Přístup k projektu, položce projektu a k vlastnostem konfigurace specifickým pro typ projektu