Freigeben über


Gewusst wie: Programmgesteuertes Erstellen von Projekten

Um ein Projekt zu erstellen, rufen Sie zuerst GetProjectTemplate auf und übergeben dann die zurückgegebenen Vorlagenpfade an AddFromTemplate.

Projektvorlagen verfügen über die Dateinamenerweiterung .vstemplate und werden in ZIP-Dateien gespeichert.Um den Pfad der VSTEMPLATE-Datei (in der ZIP-Datei) abzurufen, verwenden Sie GetProjectTemplate und übergeben das Element an AddFromTemplate, um das Projekt (sowie eine Projektmappe, falls noch keine geöffnet ist) zu erstellen.Sie können diesen Vorgang so oft wie nötig ausführen. Die einzelnen Projekte werden dabei der aktuell geöffneten Projektmappe hinzugefügt.

Die Projektvorlagen für alle Sprachen befinden sich unter \Programme\Microsoft Visual Studio 10.0\Common7\IDE\ProjectTemplates\Sprache\.

Sie können auch eigene benutzerdefinierte Projektvorlagen 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-Benutzerprojektvorlagen ein.

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

Verwenden Sie lange Dateinamen (keine 8.3-Namen).Weitere Informationen finden Sie unter Creating Project and Item Templates.

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.Klicken Sie im Menü Extras auf Einstellungen importieren und exportieren, um die Einstellungen zu ändern.Weitere Informationen finden Sie unter Visual Studio-Einstellungen.

Erstellen eines Projekts

So erstellen Sie ein Projekt programmgesteuert

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

  2. Fügen Sie den Beispielcode, 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.

    Klicken Sie dazu im Menü Extras auf Add-In-Manager, und wählen Sie das Add-In aus.

Beispiel

Im folgenden Beispiel werden GetProjectTemplate und AddFromTemplate verwendet, um zwei Konsolenprojekte, eines in Visual Basic und das andere in Visual C#, in einer Projektmappe zu erstellen.

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)
    createProjectsFromTemplates(_applicationObject)
End Sub

Sub createProjectsFromTemplates(ByVal dte As DTE2)
    Try
        ' Create a solution with two projects in it, based on project 
        ' templates.
        Dim soln As Solution2 = CType(DTE.Solution, _
        Solution2)
        Dim csTemplatePath As String
        Dim vbTemplatePath As String
        Dim csPrjPath As String = _
        "C:\UserFiles\user1\addins\MyCSProject"
        Dim vbPrjPath As String = _
        "C:\UserFiles\user1\addins\MyVBProject"

        ' Get the project template path for a C# console project.
        ' Console Application is the template name that appears in the 
        ' right pane, "CSharp" is the Language(vstemplate) as seen in 
        ' the registry.
        csTemplatePath = soln.GetProjectTemplate _
        ("ConsoleApplication.zip", "CSharp")
        MsgBox("C# template path: " & csTemplatePath)
        ' Get the project template path for a Visual Basic
        ' console project.
        ' "vbproj: is the DefaultProjectExtension as seen in the 
        ' registry.
        vbTemplatePath = soln.GetProjectTemplate _
        ("ConsoleApplication.zip", "vbproj")
        MsgBox("Visual Basic template path: " & vbTemplatePath)
        ' Create a new C# console project using the template obtained 
        ' above.
        soln.AddFromTemplate(csTemplatePath, csPrjPath, _
          "New CSharp Console Project", False)
        ' Create a new Visual Basic console project using the template
        ' obtained above.
        soln.AddFromTemplate(vbTemplatePath, vbPrjPath, _
          "New Visual Basic Console Project", False)
    Catch ex As System.Exception
        MsgBox("ERROR: " & ex.ToString)
    End Try
End Sub
public void OnConnection(object application, ext_ConnectMode 
  connectMode, object addInInst, ref Array custom)
{
    _applicationObject = (DTE2)application;
    _addInInstance = (AddIn)addInInst;
    createProjectsFromTemplates(_applicationObject);
}

public void createProjectsFromTemplates(DTE2 dte)
{
    try
    {
        // Create a solution with two projects in it, based on project 
        // templates.
        Solution2 soln = (Solution2)dte.Solution;
        string csTemplatePath;
        string vbTemplatePath;
        string csPrjPath = "C:\\UserFiles\\user1\\addins\\MyCSProject";
        string vbPrjPath = "C:\\UserFiles\\user1\\addins\\MyVBProject";
        // Get the project template path for a C# console project.
        // Console Application is the template name that appears in 
        // the right pane. "CSharp" is the Language(vstemplate) as seen 
        // in the registry.
        csTemplatePath = soln.GetProjectTemplate("ConsoleApplication.zip", 
          "CSharp");
        System.Windows.Forms.MessageBox.Show("C# template path: " + 
          csTemplatePath);
        // Get the project template path for a Visual Basic console
        // project.
        // "vbproj: is the DefaultProjectExtension as seen in the 
        // registry.
        vbTemplatePath = soln.GetProjectTemplate("ConsoleApplication.zip", 
          "vbproj");
        System.Windows.Forms.MessageBox.Show("Visual Basic template path: " + 
          vbTemplatePath);
        // Create a new C# console project using the template obtained 
        // above.
        soln.AddFromTemplate(csTemplatePath, csPrjPath, "New CSharp 
          Console Project", false);
        // Create a new Visual Basic console project using the template 
        // obtained above.
        soln.AddFromTemplate(vbTemplatePath, vbPrjPath, "New VB Console 
          Project", false);
    }
    catch (System.Exception ex)
    {
        System.Windows.Forms.MessageBox.Show("ERROR: " + ex.Message);
    }
}

Siehe auch

Aufgaben

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

Gewusst wie: Programmgesteuertes Erstellen von Projektelementen

Konzepte

Bearbeiten von Visual Basic- und Visual C#-Projekten

Bearbeiten von Visual C++-Projekten

Weitere Ressourcen

Steuern der Projektmappe und der zugehörigen Projekte