Jak: přístup k vlastnostem určité 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í nastavení zabezpečení ovládacího prvku, název sestavení a podobně.
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 řídit nastavení programově.Konkrétně vlastnosti v ProjectProperties3 k ovládání vlastností projektu na aplikace, zdroje, Nastavení, Referenční cesty a podepsání podoknech okna Vlastnosti stránky pro Visual C# projekty.Vlastnosti definované v VBProjectProperties3 umožňují řídit nastavení vlastnosti Visual Basic projekty, na aplikace, zdroje, Nastavení, odkazy a podepsání podoknech okna Vlastnosti stránku.
Vlastnosti Visual C# projekty jsou definovány v ProjectProperties3.Vlastnosti Visual Basic projekty jsou definovány v VBProjectProperties3.MyApplication a MyType vlastnosti, které jsou specifické pro Visual Basic pouze projekty.Zbývající vlastnosti v VBProjectProperties3 jsou stejné jako vlastnosti v ProjectProperties3.
Tyto vlastnosti přístupná přímo obsazení Properties objekt na ProjectProperties3 nebo VBProjectProperties3 objektu.Místo toho tyto vlastnosti je nutné přistoupit pomocí Properties kolekce zadáním názvu vlastnosti pro určitý typ projektu jako řetězec zadat Property.Například kód EnvDTE.Property prop = EnvDTE.Properties.Item("ApplicationIcon"); umožňuje přístup ApplicationIcon vlastnost.
Ve skutečnosti vlastnosti definované v ProjectProperties3 a VBProjectProperties3 jsou referenční seznam dostupných vlastností pro konkrétní projekty, které se používají jako vlastnost položky projektu.
Následující kroky podrobně jak tyto vlastnosti programově 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 pro určitý typ projektu
Vytvoření Visual Studio projektu přidat pomocí Visual C#.
Na projektu nabídky, klepněte na tlačítko Přidat odkaz na, klepněte .NET kartě vyberte VSLangProj, VSLangProj2, a VSLangProj80, a Sytem.Windows.Forms a na 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řidat novou metodu nazvanou volání VSProjectProperies OnConnection metodou po řádku, který nastaví _addInstance způsob, jak je uvedeno:.
_applicationObject = (DTE2)application; _addInInstance = (AddIn)addInInst; VSProjectProperties(_applicationObject);
Přidáte metodu VSProjectProperties pod OnConnection metoda.
public void VSProjectProperties(DTE2 dte) { try { // Open a Visual C# or Visual Basic project // before running this add-in. Project project; project = _applicationObject.Solution.Projects.Item(1); Property prop; prop = project.Properties.Item("AssemblyName"); MessageBox.Show("The assembly name is: " + prop.Value .ToString()); prop.Value = "MyTestAssembly"; MessageBox.Show("The assembly name is now: " + prop.Value.ToString()); // If the project is a Visual Basic project, set // the MyApplication property. if (project.Kind == "{F184B08F-C81C-45F6-A5F6-5ABD9991F28F}") { MessageBox.Show("The project is a Visual Basic Project"); prop = project.Properties.Item("MyType"); MessageBox.Show("The MyType value is: " + prop.Value.ToString()); prop.Value = "Class Library"; MessageBox.Show("The MyType value is now: " + prop.Value.ToString()); } } catch(Exception ex) { MessageBox.Show(ex.Message); } }
VSProjectProperties Metoda nastaví i získává AssemblyName vlastnosti předáním ji jako Property položka řetězec Properties kolekce.Pokud je projekt Visual Basic projektu, VSProjectProperties metoda rovněž nastavuje a získává MyType vlastnost.
V části příklad uvádí kompletní kód.
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 název sestavení změnil klepnutím na Vlastnosti na projektu nabídky a výběrem aplikace karta v Vlastnosti okna.
Název sestavení pole odráží změny provádět programově.
Příklad
Následující příklad je základní Visual Studio , který ukazuje, jak lze získat přístup k vlastnosti, které jsou specifické pro typy projektů pomocí automatizace v Visual Studio.
using System;
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;
namespace myAddin
public void OnConnection(object application,
ext_ConnectMode connectMode, object addInInst, ref Array custom)
{
_applicationObject = (DTE2)application;
_addInInstance = (AddIn)addInInst;
VSProjectProperties(_applicationObject);
}
public void VSProjectProperties(DTE2 dte)
{
try
{
// Open a Visual C# or Visual Basic project
// before running this add-in.
Project project;
project = _applicationObject.Solution.Projects.Item(1);
Property prop;
prop = project.Properties.Item("AssemblyName");
MessageBox.Show("The assembly name is: "
+ prop.Value .ToString());
prop.Value = "MyTestAssembly";
MessageBox.Show("The assembly name is now: "
+ prop.Value.ToString());
// If the project is a Visual Basic project, set
// the MyApplication property.
if (project.Kind == PrjKind.prjKindVBProject)
{
MessageBox.Show
("The project is a Visual Basic Project");
prop = project.Properties.Item("MyType");
MessageBox.Show("The MyType value is: "
+ prop.Value.ToString());
prop.Value = "Class Library";
MessageBox.Show("The MyType 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 EnvDTE90
Imports EnvDTE90a
Imports EnvDTE100
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)
VSProjectProperties(_applicationObject)
End Sub
Sub VSProjectProperties(ByVal dte As DTE2)
' Open a Visual C# or Visual Basic project
' before running this add-in.
Try
Dim project As Project
project = _applicationObject.Solution.Projects.Item(1)
Dim prop As [Property]
prop = project.Properties.Item("AssemblyName")
MsgBox("The assembly name is: " _
& prop.Value.ToString())
prop.Value = "MyTestAssembly"
MsgBox("The assembly name is now: " _
& prop.Value.ToString())
' If the project is a Visual Basic project, set
' the MyApplication property.
If project.Kind = PrjKind.prjKindVBProject Then
MsgBox("The project is a Visual Basic Project")
prop = project.Properties.Item("MyType")
MsgBox("The MyType value is: " _
& prop.Value.ToString())
prop.Value = "Class Library"
MsgBox("The MyType 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