Exemplarische Vorgehensweise: Erstellen eines Assistenten

Add-Ins sind seit Visual Studio 2013 veraltet. Es wird empfohlen, für Ihre Add-Ins ein Upgrade auf VSPackage-Erweiterungen durchführen. Weitere Informationen zum Durchführen eines Upgrades finden Sie unter FAQ: Konvertieren von Add-Ins in VSPackage-Erweiterungen.

Assistenten wie der Add-In-Assistent sind Programme, in denen der Benutzer durch eine Reihe von Aktionen geführt wird, um eine komplexe, wiederkehrende oder schwierige Aufgabe auszuführen. Unter Windows werden Assistenten beispielsweise zum Herstellen einer Verbindung zu Netzwerkressourcen, Druckern usw. verwendet.

In Visual Studio stellen Assistenten dem Benutzer Fragen und fordern ihn zur Eingabe von Informationen auf. Anhand der Ergebnisse wird dann Code generiert. Allerdings zeigen Assistenten nicht immer eine Benutzeroberfläche an. Sie können so programmiert werden, dass der Code unsichtbar im Hintergrund generiert wird.

Es gibt drei verschiedene Arten von Assistenten:

  • Assistenten für neue Projekte – Wie der Name bereits sagt, werden diese Assistenten zum Generieren von neuem Code für einen bestimmten Projekttyp verwendet. So erhält der Benutzer einen Ausgangspunkt, um eigenen Code hinzuzufügen. Dieser Assistententyp wird am häufigsten verwendet.

  • Assistenten zum Hinzufügen neuer Elemente – Diese Assistenten werden verwendet, um einem Projekt neue Elemente hinzuzufügen, z. B. Web Forms, Textdateien, HTML-Seiten, XML-Seiten usw.

  • Benutzerdefinierte Assistenten – Diese Assistenten werden nicht in einem Dialogfeld, sondern direkt von Add-Ins, Makros oder anderen Codetypen aufgerufen. Sie können eine Benutzeroberfläche anzeigen, müssen dies allerdings nicht. In beiden Fällen generieren sie Code. Dieser Assistententyp wird am seltensten verwendet.

Unabhängig von der Art weisen alle Assistenten gemeinsame Merkmale auf:

  • Es handelt sich bei ihnen um .NET-Objekte, die die IDTWizard-Schnittstelle implementieren und die zugeordnete Methode Execute aufweisen, die den Code enthält, die der Assistent ausführen soll.

  • Sie alle verwenden eine VSZ-Datei für ihre Anzeige in Visual Studio.

  • Sie alle generieren Code oder führen eine andere Aufgabe aus.

In selbst erstellten Assistenten können Sie die Darstellung von Elementen anpassen. Assistenten bestehen i. d. R. aus mehreren Fenstern oder Seiten. Seiten können ein beschreibendes Bild enthalten, beispielsweise am oberen oder linken Rand der Seite, eine beschreibende Beschriftung, Anweisungen und einen Bereich, in den Navigationssteuerelemente, z. B. Weiter und Zurück, eingefügt werden können.

Der Prozess zum Erstellen von Assistenten in Visual C++ unterscheidet sich geringfügig vom Erstellen von Standard-Assistenten in Visual Studio. Weitere Informationen zum Erstellen von Assistenten zur Verwendung in Visual C++ finden Sie unter Entwerfen eines Assistenten und unter Erstellen eines benutzerdefinierten Assistenten.

Hinweis

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 Anpassen der Entwicklungseinstellungen in Visual Studio.

Beispiel für einen grundlegenden Assistenten

Visual Studio-Add-In-Assistent

Diese Abbildung zeigt einen Bereich des Add-In-Assistenten, der zu den Assistenten für neue Projekte zählt. Dieser leitet Sie durch eine Reihe von Schritten, um ein Add-In zu erstellen. Sie können die Darstellung von Assistenten anpassen, der Add-In-Assistent ist jedoch ein gutes Beispiel für das Aussehen eines Standard-Assistenten. Abgeschlossene Assistenten werden zu Vorlagen, die im Dialogfeld Neues Projekt oder Neues Element hinzufügen verfügbar sind.

Im Folgenden wird veranschaulicht, wie Sie einen einfachen Assistenten erstellen und ihm optional ein benutzerdefiniertes Symbol zuweisen.

So erstellen Sie einen einfachen Assistenten in Visual Basic und Visual C#

  1. Führen Sie Visual Studio als Administrator aus. Das Registrieren des Assistenten erfordert eine Aktualisierung der Registrierung. Diese Berechtigung ist daher erforderlich.

  2. Erstellen Sie ein neues Klassenbibliothekprojekt mit dem Namen MyNewWizard.

  3. Fügen Sie dem Projekt Verweise auf EnvDTE und EnvDTE80 hinzu.

    Klicken Sie dazu mit der rechten Maustaste auf das Projekt, und klicken Sie auf Hinzufügen, Verweis. Klicken Sie auf der Registerkarte ".NET" des Dialogfelds Verweis auf "EnvDTE" und "EnvDTE80" und dann auf OK.

Fügen Sie im Klassenmodul Verweise auf EnvDTE und EnvDTE80 hinzu, und implementieren Sie die IDTWizard-Schnittstelle. Für dieses Visual C#-Beispiel müssen Sie auch einen Verweis auf System.Windows.Forms und System.Runtime.InteropServices hinzufügen.

Imports EnvDTE 
Imports EnvDTE80
Public Class Class1
    Implements IDTWizard
using System;
using System.Collections.Generic;
using System.Text;
using EnvDTE; 
using EnvDTE80; 
using System. Windows.Forms;

using System.Runtime.InteropServices;

namespace MyNewWizard
{

[ComVisible(true)]

[Guid("20184B81-7C38-4E02-A1E3-8D564EEC2D25"),

ProgId("MyNewWizard.Class1")]

    public class Class1 : IDTWizard
    {
    }
}

Wenn Sie die Implements-Anweisung zu Visual Basic hinzufügen, müssen Sie den Cursor am Ende der Zeile positionieren und die EINGABETASTE drücken, um automatisch eine Execute-Methodenprozedur zu erstellen. In Visual C# hingegen müssen Sie die Execute-Prozedur manuell hinzufügen:

public class Class1 : IDTWizard
    {
    public void Execute(object Application,  
        int hwndOwner, ref object[] contextParams,  
        ref object[] customParams,  
        ref EnvDTE.wizardResult retval)
  1. Fügen Sie der Execute-Prozedur den vom Assistenten auszuführenden Code hinzu. Für dieses Beispiel fügen wir lediglich ein einfaches Meldungsfeld hinzu.

    Der Code sollte folgendermaßen aussehen:

    Imports EnvDTE
    Imports EnvDTE80
    
    Public Class Class1
        Implements IDTWizard
    
        Public Sub Execute(ByVal Application As Object, ByVal _
        hwndOwner As Integer, ByRef ContextParams() As Object, ByRef _
        CustomParams() As Object, ByRef retval As EnvDTE.wizardResult) _
        Implements EnvDTE.IDTWizard.Execute
            MsgBox("The wizard is now running.")
        End Sub
    End Class 
    
    using System.Text;
    using EnvDTE;
    using EnvDTE80;
    using System.Windows.Forms;
    using System.Runtime.InteropServices;
    
    namespace MyNewWizardCS
    {
        public class Class1 : IDTWizard
        {
    
        public void Execute(object Application, 
            int hwndOwner, ref object[] contextParams, 
            ref object[] customParams, 
            ref EnvDTE.wizardResult retval)
        {
            MessageBox.Show("The wizard is now running.");
        }
    }
    
    }
    

    Die Execute-Prozedur wird aufgerufen, wenn der Assistent gestartet wird.

  2. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt, und klicken Sie auf Eigenschaften, um die Seite Projekteigenschaften aufzurufen. Klicken Sie auf die Registerkarte Erstellen, und aktivieren Sie am Ende der Seite das Kontrollkästchen Für COM-Interop registrieren.

  3. Suchen Sie in der Datei AssemblyInfo.cs das Attribut ComVisible, und legen Sie es auf true fest.

  4. Erstellen Sie das Projekt, um die Klassenbibliotheks-DLL zu erstellen, indem Sie im Menü Erstellen auf Projektmappe erstellen klicken.

  5. Erstellen Sie für den Assistenten MyNewWizard.vsz eine VSZ-Textdatei.

    Erstellen Sie dazu eine Kopie einer vorhandenen VSZ-Datei, beispielsweise einer Datei unter "<Visual Studio Install Directory>\VC#\CSharpProjectItems\Windows Forms", und benennen Sie die Kopie in "MyNewWizard.vsz" um.

    Eine VSZ-Datei ist eine Textdatei, über die Visual Studio den Assistenten erkennt und diesen im Dialogfeld Neues Projekt oder Neues Element hinzufügen anzeigt. Der Wizard-Parameter sollte auf die Programm-ID (Project.Classname) des Projekts oder die GUID festgelegt werden. Weitere Informationen finden Sie unter Konfigurieren von VSZ-Dateien zum Starten von Assistenten.

    Hinweis

    Sie können auch eine VSDIR-Datei für den Assistenten erstellen.Diese enthält Informationen, mit deren Hilfe im Dialogfeld Neues Projekt oder Neue Datei eine Beschreibung des Assistenten angezeigt wird.Zudem können Sie in dieser Datei ein Symbol angeben und dessen Position in der Liste festlegen.Weitere Informationen finden Sie unter Hinzufügen von Assistenten zu den Dialogfeldern Element hinzufügen und Neues Projekt mithilfe von VSDIR-Dateien.

  6. Ersetzen Sie den Inhalt von MyNewWizard.vsz durch folgenden Code:

    VSWizard 7.0
    Wizard=MyNewWizard.Class1
    Param=First Item
    Param=Second Item
    
  7. Speichern Sie die neue VSZ-Datei in dem Verzeichnis, in dem der Assistent angezeigt werden soll.

    In diesem Beispiel soll der Assistent im Dialogfeld Neues Element hinzufügen in Visual Basic-Projekten angezeigt werden. Demnach müssen Sie die VSZ-Datei im folgenden Verzeichnis speichern: <Visual Studio Install Directory>\VB\VBProjectItems.

  8. Beenden Sie Visual Studio, und starten Sie das Programm neu.

    So muss Visual Studio die neue VSZ-Datei lesen.

  9. Erstellen Sie ein neues Visual Basic-Projekt, beispielsweise ein Windows-Anwendungsprojekt.

  10. Klicken Sie mit der rechten Maustaste auf das Projekt, zeigen Sie auf Hinzufügen, und klicken Sie dann auf Neues Element.

    Der neue Assistent (MyNewWizard) sollte nun im Dialogfeld Neue Elemente hinzufügen angezeigt werden.

  11. Klicken Sie auf den Assistenten und anschließend auf die Schaltfläche Hinzufügen.

    Die folgende Meldung wird angezeigt: "Der Assistent wird nun ausgeführt".

So zeigen Sie ein benutzerdefiniertes Symbol für den neuen Assistenten an

  • Platzieren Sie eine Symboldatei, die denselben Dateinamen wie die DLL-Datei, aber der Erweiterung .ico aufweist, in dem Verzeichnis, in dem sich auch die Assistentendatei befindet.

    Lautet der Name der Assistentendatei beispielsweise MyNewWizard.dll, lautet der Name der ICO-Datei MyNewWizard.ico.

    - oder -

  • Wenn Sie eine VSDIR-Datei erstellt haben, geben Sie einen Pfad zu der Symboldatei (ICO-Datei) dort an.

Siehe auch

Aufgaben

Gewusst wie: Erstellen von Add-Ins

Referenz

IDTWizard

Konzepte

Diagramm "Automationsobjektmodell"

Hinzufügen von Assistenten zu den Dialogfeldern Element hinzufügen und Neues Projekt mithilfe von VSDIR-Dateien

Konfigurieren von VSZ-Dateien zum Starten von Assistenten

Weitere Ressourcen

Erstellen von Add-Ins und Assistenten

Visual Studio-Befehle und -Schalter