Gewusst wie: Zugreifen auf Eigenschaften von Ordnern für bestimmte Projekttypen
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#- oder 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#- oder Visual Basic-Projekt zu.
Faktisch stellen die in FolderProperties2 definierten Eigenschaften eine Verweisliste verfügbarer Eigenschaften für Ordner dar, auf die als Projekteigenschaftenelemente für Visual C#- oder Visual Basic-Projekte zugegriffen werden kann.
In den nachfolgenden Schritten wird der programmgesteuerte Zugriff auf diese Eigenschaften in einem Visual Studio-Add-In ausführlich erläutert.
Tipp
Je nach den aktiven Einstellungen oder der Version unterscheiden sich die Dialogfelder und Menübefehle auf Ihrem Bildschirm möglicherweise von den in der Hilfe beschriebenen. Bei der Entwicklung dieser Verfahren war die Option Allgemeine Entwicklungseinstellungen aktiviert. Klicken Sie im Menü Extras auf Einstellungen importieren und exportieren, um die Einstellungen zu ändern. Weitere Informationen finden Sie unter Arbeiten mit 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# 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 Visual Studio-IDE ein Visual C#- 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# 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# 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 diesen 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.