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.

HinweisHinweis

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.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

  1. Erstellen Sie in Visual C# ein Visual Studio-Add-In-Projekt.

  2. 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.

  3. Fügen Sie am Anfang der Datei Connect.cs die folgenden using-Anweisungen ein.

    using VSLangProj;
    using VSLangProj2;
    using VSLangProj80;
    
  4. 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);
    }
    
  5. 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.

  6. Erstellen Sie das Add-In, indem Sie im Menü Erstellen auf Projektmappe erstellen klicken.

  7. Öffnen Sie in der Visual Studio-IDE ein Visual C#- oder Visual Basic-Projekt.

  8. 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.

Siehe auch

Weitere Ressourcen

Project Properties

Zugreifen auf projekttypspezifische Projekteigenschaften, Projektelementeigenschaften und Konfigurationseigenschaften