Gewusst wie: Programmgesteuertes Erstellen von Projektelementen

Um Projektelemente programmgesteuert zu erstellen, rufen Sie zuerst GetProjectItemTemplate auf und übergeben die zurückgegebenen Vorlagenpfade dann an AddFromTemplate. Weitere Informationen finden Sie unter Visual Studio-Vorlagen.

Die GetProjectItemTemplate-Methode gibt die Vorlage aus der entsprechenden ZIP-Datei zurück, die mit der AddFromTemplate-Methode verwendet wird. Die Projektelementvorlagen für alle Sprachen befinden sich unter \Programme\Microsoft Visual Studio 10.0\Common7\IDE\ItemTemplates\Sprache\.

Sie können auch eigene benutzerdefinierte Projektelementvorlagen erstellen. Um den Speicherort für die Vorlagen anzugeben, klicken Sie im Menü Extras auf Optionen. Klicken Sie im linken Bereich des Dialogfelds Optionen auf Projekte und Projektmappen. Geben Sie den Pfad für die Vorlagen im Feld Speicherort von Visual Studio-Benutzerelementvorlagen ein.

Benutzerdefinierte Vorlagen erfordern eindeutige Dateinamen, die nicht mit den unter \Programme\Microsoft Visual Studio 10.0\Common7\IDE\ItemTemplates\Sprache\ definierten Dateinamen in Konflikt stehen.

Verwenden Sie lange Dateinamen (keine 8.3-Namen). Weitere Informationen finden Sie unter Erstellen von Projekt- und Elementvorlagen.

Um Projekte aus der Projektmappe zu entfernen, verwenden Sie Remove.

Im folgenden Beispiel wird die generische Methode zur Erstellung von Projektelementen dargestellt. Die im Abschnitt Siehe auch aufgeführten Themen behandeln die Verwendung sprachspezifischer Modelle.

Tipp

Auf Ihrem Computer werden möglicherweise andere Namen oder Speicherorte für die Benutzeroberflächenelemente von Visual Studio angezeigt als die in den folgenden Anweisungen aufgeführten. Die Elemente werden durch die verwendete Ausgabe von Visual Studio und die gewählten Einstellungen bestimmt. Weitere Informationen finden Sie unter Arbeiten mit Einstellungen.

Hinzufügen von Elementen zu Projekten

So fügen Sie einem Projekt Elemente programmgesteuert hinzu

  1. Starten Sie Visual Studio, und erstellen Sie ein Visual Studio-Add-In-Projekt.

  2. Fügen Sie den Code hinzu, der später in diesem Thema angegeben ist, der Connect-Klasse des Add-Ins hinzu.

  3. Führen Sie das Add-In-Projekt aus und aktivieren Sie es im Add-In-Manager, indem Sie im Menü Tools auf Add-In-Manager klicken und das Kontrollkästchen neben dem Add-In aktivieren.

Beispiel

Im folgenden Beispiel wird veranschaulicht, wie einem vorhandenen Visual Basic-Projekt Elemente programmgesteuert hinzugefügt werden.

' Before running the following code, be sure that a Visual Basic 
' project is open in Visual Studio.
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)
    createProjectItem(_applicationObject)
End Sub

Sub createProjectItem(ByVal dte As DTE2)
    ' Adds a new Class to an existing Visual Basic project.
    Dim soln As Solution2
    Dim prj As Project
    soln = CType(_applicationObject.Solution, Solution2)
    Dim prjItem As ProjectItem
    Dim itemPath As String

    ' Point to the first project (the Visual Basic project).
    prj = soln.Projects.Item(1)
    ' Retrieve the path to the Class template.
    itemPath = soln.GetProjectItemTemplate("Class.zip", "vbproj")
    ' Create a new project item based on the template, in this case,
    ' a Class.
    prjItem = prj.ProjectItems.AddFromTemplate(itemPath, "MyNewClass")
End Sub
// Before running the following code, be sure that a Visual Basic 
// project is open in Visual Studio.
public void OnConnection(object application,
 Extensibility.ext_ConnectMode connectMode, object addInInst, ref
 System.Array custom)
{
    _applicationObject = (DTE2)application;
    _addInInstance = (AddIn)addInInst;

    // Pass the applicationObject member variable to the code example.
    createProjectItem(_applicationObject);
}
public void createProjectItem(DTE2 dte)
{
    //Adds a new Class to an existing Visual Basic project.
    Solution2 soln;
    Project prj;
    soln = (Solution2)_applicationObject.Solution;
    ProjectItem prjItem;
    String itemPath;
    // Point to the first project (the Visual Basic project).
    prj = soln.Projects.Item(1);
    // Retrieve the path to the class template.
    itemPath = soln.GetProjectItemTemplate("Class.zip", "vbproj");
    //Create a new project item based on the template, in this
    // case, a Class.
    prjItem = prj.ProjectItems.AddFromTemplate(itemPath, "MyNewClass");
}

Kompilieren des Codes

Um den Code zu kompilieren, erstellen Sie ein Visual Studio-Add-In-Projekt und ersetzen den Code der Connect.cs-Klasse oder Connect.vb-Klasse durch den Code im Beispiel. Öffnen Sie ein Visual Basic-Projekt in Visual Studio, bevor Sie das Add-In ausführen. Informationen zum Ausführen eines Add-Ins finden Sie unter Gewusst wie: Steuern von Add-Ins mit dem Add-In-Manager.

Robuste Programmierung

Wenn Sie Projektelementnamen als Parameter für Solution.Projects.Item einsetzen, müssen Sie den eindeutigen Namen des Projekts verwenden. Der eindeutige Name ist ein relativer Pfad, der von dem Verzeichnis, in dem die Projektmappendatei (.sln) enthalten ist, zur Projektdatei führt.

Vergleichen Sie beispielsweise die folgende Projektmappen-/Projektstruktur:

SomeSolution.sln

     WinApp1

          WinApp1.VBProj

Der eindeutige Name für das Projekt würde "WinApp1/WinApp1.VBProj" und der Aufruf an die Item-Methode würde Solution.Projects.Item("WinApp1/WinApp1.VBProj") lauten.

Siehe auch

Aufgaben

Gewusst wie: Kompilieren und Ausführen der Codebeispiele für das Automatisierungsobjektmodell

Gewusst wie: Programmgesteuertes Erstellen von Projekten

Konzepte

Bearbeiten von Visual Basic- und Visual C#-Projekten

Bearbeiten von Visual C++-Projekten

Einführung in Visual Studio-Vorlagen

Weitere Ressourcen

Steuern der Projektmappe und der zugehörigen Projekte