Jak: vlastnosti konfigurace přístupu pro konkrétní typy projektů
Visual Studio Poskytuje obecné automatizace modelu Properties kolekce, který lze použít k přístupu Properties kolekce všech Visual Studio typ projektu.Mimo jiné vlastnosti projektu umožňují řídit nastavení zabezpečení, konfigurace sestavení a konfiguraci ladění.
Chcete-li ručně nastavit a zkontrolovat vlastnosti projektu, otevřete projekt v Visual Studio integrované vývojové prostředí (IDE).Na projektu nabídce klepněte na příkaz Vlastnosti.Vlastnosti okno má více záložek a každé podokno obsahuje vlastnosti, které slouží k definování a řízení chování projektů.Automatizace modelu umožňuje toto nastavení programově.Konkrétně vlastností uvedených v CSharpProjectConfigurationProperties4, VBProjectConfigurationProperties4, a ProjectConfigurationProperties3 k ovládání vlastností projektu na sestavení (kompilace pro Visual Basic projekty) a laděníVlastnosti podoknech okna Vlastnosti stránky aktivní konfigurace.
Různé konfigurace není aktivní, můžete také pomocí přístupu ConfigurationManager objektu.Další informace naleznete v tématu Jak: Vytvoření konfigurace sestavení projektu a řešení.
Vlastnosti konfigurace Visual C# projekty jsou definovány v CSharpProjectConfigurationProperties4.ErrorReport a LanguageVersion vlastnosti, které jsou specifické pro Visual C# pouze projekty.Zbývající vlastnosti v CSharpProjectConfigurationProperties3 jsou stejné jako vlastnosti v ProjectConfigurationProperties3.
Tyto vlastnosti konfigurace přístupná přímo obsazení Property objekt na CSharpProjectConfigurationProperties3 nebo ProjectConfigurationProperties3 objektu.Tyto vlastnosti lze místo toho přístup 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 přistupuje buď CSharpProjectConfigurationProperties3.EnableSQLServerDebugging nebo ProjectConfigurationProperties3.EnableSQLServerDebugging vlastnost, podle toho, zda proj definuje proměnné Visual C# nebo Visual Basic projektu.
Ve skutečnosti vlastnosti konfigurace definované v CSharpProjectConfigurationProperties3 nebo ProjectConfigurationProperties3 seznam vlastností k dispozici konfigurace pro konkrétní projekty, které se používají jako položky konfigurace vlastností prostřednictvím projektu jsou Properties kolekce.
Následující kroky podrobně jak programově přistupovat k vlastnosti konfigurace aktivní konfigurace v Visual Studio doplněk.
[!POZNÁMKA]
Dialogová okna a příkazy v nabídkách menu, které vidíte, se mohou lišit od těch popsaných v nápovědě, v závislosti na vašich aktivních nastaveních nebo edici.Tyto postupy byly vyvinuty s aktivní Obecné nastavení pro vývoj.Chcete-li změnit nastavení, zvolte Import and Export Settings v menu Nástroje.Další informace naleznete v tématu Nastavení aplikace Visual Studio.
Přístup k vlastnosti konfigurace pro konkrétní typ projektu
Vytvoření Visual Studio projektu přidat pomocí Visual C# a výběrem možnosti načíst doplněk, při spuštění aplikace Visual Studio.
Na projektu nabídky, klepněte na tlačítko Přidat odkaz na, klepněte .NET kartě vyberte bylo povoleno, VSLangProj, VSLangProj2, a VSLangProj80a klepněte na tlačítko OK.
Následující použití příkazy přidáte na začátek souboru Connect.cs.
using VSLangProj; using VSLangProj2; using VSLangProj80; using VSLangProj90; using VSLangProj100; using System.Windows.Forms;
Přidáte následující funkce volání funkce OnConnection.
_applicationObject = (DTE2)application; _addInInstance = (AddIn)addInInst; VSProjectConfigProperties(_applicationObject);
Přidáte metodu VSProjectConfigProperties pod OnConnection metoda.
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 načte a zobrazí PlatformTarget hodnotu vlastnosti.Jak nastaví a získává WarningLevel vlastnost.Pokud je projekt Visual C# projektu, VSProjectConfigProperties metoda nastavuje a získává LanguageVersion vlastnost.
Vytvořit doplněk klepnutím na Sestavit řešení na sestavení nabídce.
Open a Visual C# or Visual Basic project in the Visual Studio IDE.
Na Nástroje nabídky, klepněte na tlačítko Správce doplňkůa vyberte doplněk z Správce doplňků dialogové okno.Klepněte na tlačítko OK spustit doplněk.
Ověřit, že úroveň pro upozornění změnil klepnutím na Vlastnosti na projektu nabídky a výběrem sestavení karta v Vlastnosti okna.
Úroveň pro upozornění pole odráží změny provádět programově.
Ověřit nastavení verze jazyka pro Visual C# na projektu sestavení podokně Vlastnosti okno, klepněte na Upřesnit.
Verze pole Rozšířené nastavení sestavení dialogové okno odráží doplněk provedené změny.
Příklad
Následující příklad je základní Visual Studio , který ukazuje, jak lze získat přístup k vlastnosti pro určitý typ projektu pomocí automatizace v 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
Tento kód kompilace, vytvořit nový Visual Studio přidat projektu a nahradit kód metody OnConnection s kódem v příkladu.Informace o spuštění v Postup: ovládání doplňky pomocí Správce doplňků.
Viz také
Další zdroje
Přístup k projektu typu určitého projektu, projektu položky a vlastnosti konfigurace