Gewusst wie: Zugreifen auf Eigenschaften von Ordnern für bestimmte Projekttypen
Aktualisiert: November 2007
Sie können Ordnereigenschaften manuell festlegen und untersuchen, indem Sie ein Projekt in der integrierten Entwicklungsumgebung (Integrated Development Environment – IDE) von Visual Studio öffnen und mit der rechten Maustaste auf einen Ordner im Projektmappen-Explorer klicken. Klicken Sie im Kontextmenü auf Eigenschaften, um das Eigenschaftendialogfeld anzuzeigen.
Der VSLangProj80-Namespace bietet eine Möglichkeit des programmgesteuerten Zugriffs auf Ordnereigenschaften in Visual C#-, Visual J#- und Visual Basic-Projekten. Insbesondere definiert FolderProperties2 eine Vielzahl von Eigenschaften zum Steuern von und Zugreifen auf Ordnerinformationen. Auf viele der in FolderProperties2 definierten Eigenschaften kann im Eigenschaftenfenster nicht manuell zugegriffen werden.
Um auf eine bestimmte FolderProperties2-Eigenschaft zuzugreifen, müssen Sie den zugehörigen Eigenschaftennamen als Zeichenfolge an EnvDTE.Property.Properties.Item(object index) übergeben, wie im nachfolgenden Codebeispiel dargestellt.
Project project;
ProjectItem folder;
Properties folderProps;
Property prop;
project = _applicationObject.Solution.Projects.Item(1);
folder = project.ProjectItems.AddFolder("MyFolder"
,Constants.vsProjectItemKindPhysicalFolder);
folderProps = folder.Properties;
prop = folderProps.Item("FullPath");
Dieser Code greift auf die FullPath-Eigenschaft eines Ordners in einem Visual C#-, Visual J#- oder Visual Basic-Projekt zu.
Faktisch sind die in FolderProperties2 definierten Eigenschaften eine Verweisliste verfügbarer Eigenschaften von Ordnern, auf die als Projekteigenschaftenelemente für Visual C#-, Visual J#- oder Visual Basic-Projekte zugegriffen werden kann.
In den nachfolgenden Schritten wird ausführlich der programmgesteuerte Zugriff auf diese Eigenschaften in einem Visual Studio-Add-In erläutert.
Hinweis: |
---|
Je nach den aktiven Einstellungen oder der verwendeten Version können sich die angezeigten Dialogfelder und Menübefehle von den in der Hilfe beschriebenen unterscheiden. Bei der Entwicklung dieser Prozeduren war die Option Allgemeine Entwicklungseinstellungen aktiviert. Wählen Sie im Menü Extras die Option Einstellungen importieren und exportieren aus, um die Einstellungen zu ändern. Weitere Informationen finden Sie unter Visual Studio-Einstellungen. |
So greifen Sie auf die Eigenschaften von Ordnern für einen bestimmten Projekttyp zu
Erstellen Sie in Visual C# ein Visual Studio-Add-In-Projekt.
Klicken Sie im Menü Projekt auf Verweis hinzufügen, klicken Sie auf die Registerkarte .NET, wählen Sie VSLangProj, VSLangProj2 und VSLangProj80 aus, und klicken Sie dann auf OK.
Fügen Sie am Anfang der Datei Connect.cs die folgenden using-Anweisungen ein.
using VSLangProj; using VSLangProj2; using VSLangProj80;
Fügen Sie der OnConnection-Methode den folgenden Methodenaufruf hinzu.
public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom) { _applicationObject = (DTE2)application; _addInInstance = (AddIn)addInInst; VSProjectFolderProps2(_applicationObject); }
Fügen Sie direkt unterhalb der OnConnection-Methode die VSProjectFolderProps2-Methode ein.
public void VSProjectFolderProps2(DTE2 dte) { try { // Open a Visual C#, Visual J#, or Visual Basic project // before running this add-in. Project project; ProjectItem folder; Properties folderProps; Property prop; project = _applicationObject.Solution.Projects.Item(1); // Add a new folder to the project. MessageBox.Show("Adding a new folder to the project."); folder = project.ProjectItems.AddFolder("MyFolder", Constants.vsProjectItemKindPhysicalFolder); folderProps = folder.Properties; prop = folderProps.Item("FullPath"); MessageBox.Show("The full path of the new folder is:" + "\n" + prop.Value.ToString()); prop = folderProps.Item("FileName"); MessageBox.Show("The file name of the new folder is:" + "\n" + prop.Value.ToString()); prop = folderProps.Item("URL"); MessageBox.Show("The new folder has the following URL:" + "\n" + prop.Value.ToString()); } catch(Exception ex) { MessageBox.Show(ex.Message); } }
Im Beispielabschnitt wird der vollständige Code aufgeführt.
Erstellen Sie das Add-In, indem Sie im Menü Erstellen auf Projektmappe erstellen klicken.
Öffnen Sie in der IDE von Visual Studio ein Visual C#-, Visual J#- oder Visual Basic-Projekt.
Klicken Sie im Menü Extras auf Add-In-Manager, und wählen Sie im Dialogfeld Add-In-Manager das Add-In aus. Klicken Sie auf OK, um das Add-In auszuführen.
Die Ordnereigenschaften für FullPath, FileName und URL werden in Meldungsfeldern angezeigt.
Beispiel
Das folgende Beispiel zeigt ein einfaches Visual Studio-Add-In, das den Zugriff auf die Eigenschaften eines Ordners in einem bestimmten Projekttyp mithilfe der Visual Studio-Automatisierung veranschaulicht.
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;
VSProjectFolderProps2(_applicationObject);
}
public void VSProjectFolderProps2(DTE2 dte)
{
try
{
// Open a Visual C#, Visual J#, or Visual Basic project
// before running this add-in.
Project project;
ProjectItem folder;
Properties folderProps;
Property prop;
project = _applicationObject.Solution.Projects.Item(1);
// Add a new folder to the project.
MessageBox.Show("Adding a new folder to the project.");
folder =
project.ProjectItems.AddFolder("MyFolder"
,Constants.vsProjectItemKindPhysicalFolder);
folderProps = folder.Properties;
prop = folderProps.Item("FullPath");
MessageBox.Show("The full path of the new folder is:" + "\n"
+ prop.Value.ToString());
prop = folderProps.Item("FileName");
MessageBox.Show("The file name of the new folder is:" + "\n"
+ prop.Value.ToString());
prop = folderProps.Item("URL");
MessageBox.Show("The new folder has the following URL:"
+ "\n" + 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 folder As ProjectItem
Dim folderProps As Properties
Dim prop As [Property]
project = _applicationObject.Solution.Projects.Item(1)
' Add a new folder to the project.
MsgBox("Adding a new folder to the project...")
folder = project.ProjectItems.AddFolder("MyFolder" _
, Constants.vsProjectItemKindPhysicalFolder)
folderProps = folder.Properties
prop = folderProps.Item("FullPath")
MsgBox("The full path of the new folder is:" & vbCr _
& prop.Value.ToString())
prop = folderProps.Item("FileName")
MsgBox("The file name of the new folder is:" & vbCr _
& prop.Value.ToString())
prop = folderProps.Item("URL")
MsgBox("The new folder has the following URL:" & vbCr _
& prop.Value.ToString())
Catch ex As System.Exception
MsgBox(ex.ToString)
End Try
End Sub
Kompilieren des Codes
Um den Code zu kompilieren, erstellen Sie ein neues Visual Studio-Add-In-Projekt und ersetzen den Code der OnConnection-Methode durch den Code im Beispiel. Informationen zum Ausführen eines Add-Ins finden Sie unter Gewusst wie: Steuern von Add-Ins mit dem Add-In-Manager.