Exemplarische Vorgehensweise: Erstellen eines Assistenten
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 Typen 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 vom Typ 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 |
---|
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. |
Beispiel für einen grundlegenden Assistenten
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#
Führen Sie Visual Studio als Administrator aus.Das Registrieren des Assistenten erfordert eine Aktualisierung der Registrierung. Diese Berechtigung ist daher erforderlich.
Erstellen Sie ein neues Klassenbibliothekprojekt mit dem Namen MyNewWizard.
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 Verweis hinzufügen.Klicken Sie auf der Registerkarte .NET des Dialogfelds Verweis hinzufügen 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)
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.
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.
Suchen Sie in der Datei AssemblyInfo.cs das Attribut ComVisible, und legen Sie es auf true fest.
Erstellen Sie das Projekt, um die Klassenbibliotheks-DLL zu erstellen, indem Sie im Menü Erstellen auf Projektmappe erstellen klicken.
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-Installationsverzeichnis>\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 NeuesProjekt hinzufügen oder NeueDatei hinzufügen 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.
Ersetzen Sie den Inhalt von MyNewWizard.vsz durch folgenden Code:
VSWizard 7.0 Wizard=MyNewWizard.Class1 Param=First Item Param=Second Item
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-Installationsverzeichnis>\VB\VBProjectItems.
Beenden Sie Visual Studio, und starten Sie das Programm neu.
So muss Visual Studio die neue VSZ-Datei lesen.
Erstellen Sie ein neues Visual Basic-Projekt, beispielsweise ein Windows-Anwendungsprojekt.
Klicken Sie mit der rechten Maustaste auf das Projekt, zeigen Sie auf Element hinzufügen, und klicken Sie dann auf Neues Element.
Der neue Assistent (MyNewWizard) sollte nun im Dialogfeld Neue Elemente hinzufügen angezeigt werden.
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
Visual Studio-Befehle und -Schalter
Konzepte
Diagramm "Automationsobjektmodell"
Konfigurieren von VSZ-Dateien zum Starten von Assistenten