Automatisierungs- und Erweiterungsbersicht

Veröffentlicht: 05. Apr 2002 | Aktualisiert: 21. Jun 2004

Von Kemp Brown

In diesem Dokument lernen Sie das Microsoft Visual-Studio-.NET-Automatisierungsmodell kennen und erfahren, wie Sie es zum Erzeugen von Tools verwenden knnen, die Ihnen den Entwicklungsvorgang erleichtern.

Dieser Artikel enthlt Links zu englischsprachigen Seiten.

Auf dieser Seite

Einfhrung Einfhrung
Automatisierung und das Visual-Studio-.NET-Automatisierungsmodell Automatisierung und das Visual-Studio-.NET-Automatisierungsmodell
Das Visual-Studio-.NET-Automatisierungsobjektmodell Diagramm Das Visual-Studio-.NET-Automatisierungsobjektmodell Diagramm
Das Spektrum der Visual-Studio-.NET-Automatisierung Das Spektrum der Visual-Studio-.NET-Automatisierung
Zugreifen auf das Automatisierungsmodell Zugreifen auf das Automatisierungsmodell
Erstellen von Add-Ins Erstellen von Add-Ins
Erstellen von Assistenten Erstellen von Assistenten
Bereitstellen von und Zugreifen auf Add-Ins und Assistenten Bereitstellen von und Zugreifen auf Add-Ins und Assistenten
Debuggen von Add-Ins Debuggen von Add-Ins
Schlussfolgerung  Schlussfolgerung

Einfhrung

Obwohl Visual Studio .NET viele Tools bietet, mit denen nahezu jede Aufgabe bewltigt werden kann, bentigen einige Entwickler ein zustzliches bzw. umfassenderes Ma an Kontrolle. Wenn sie z.B. eine Aufgabe bzw. eine Reihe von Aufgaben relativ hufig durchfhren mssen, mchten sie diese mglicherweise automatisieren. Aus diesem Grund stellt Visual Studio .NET ein umfassendes Programmiermodell zur Erweiterung und Automatisierung seiner integrierten Entwicklungsumgebung (Integrated Development Environment, IDE) bereit, das auch als "Automatisierungsmodell" bezeichnet wird. Das Automatisierungsmodell bietet die Mglichkeit, die Umgebung zu automatisieren und ihr Erweiterungen und neue Features hinzuzufgen.

Dieser Artikel soll einen berblick ber die Visual Studio .NET-Automatisierungsfeatures geben. Auf die Programmierverfahren fr die verschiedenen Teile des Modells und die Verwendung des Modells zur Erledigung verschiedener Aufgaben soll in spteren Artikeln eingehender eingegangen werden.

Sie knnen die Dokumentation zum Visual-Studio-.NET-Automatisierungsmodell anzeigen, indem Sie den Index nach "IDE, ways to manipulate" durchsuchen. Alternativ dazu knnen Sie Manipulating the Development Environment unter Developing with Visual Studio .NET lesen.

 

Automatisierung und das Visual-Studio-.NET-Automatisierungsmodell

Frher wurde das Visual-Studio-.NET-Automatisierungsobjektmodell als "Erweiterungsmodell" bezeichnet, doch ist der Begriff "Erweiterbarkeit" zu vielschichtig und kann sowohl Automatisierung und externe Tools (im Men Extras) als auch Befehlsleistenanpassungen oder Makros umfassen.

Das Visual-Studio-.NET-Automatisierungsmodell ermglicht die programmtechnische Steuerung und Erweiterung der IDE. Dieses Objektmodell ist in Visual Studio .NET enthalten und ffentlich dokumentiert. Eine weitere Mglichkeit zum programmtechnischen Erweitern der IDE besteht in der Verwendung von Visual Studio Integrator Program (VSIP), das in Das Spektrum der Visual Studio .NET-Automatsierung beschrieben wird.

Was ist das Visual-Studio-.NET-Automatisierungsmodell?

Die Visual-Studio-.NET-IDE besteht aus verschiedenen untereinander verknpften Toolfenstern (z.B. Toolbox und Aufgabenliste) und Dokumentfenstern, wie dem Projektmappen-Explorer und dem Code-Editor. Das Automatisierungsmodell in Visual Studio .NET enthlt die programmtechnischen Objekte und Schnittstellen der IDE, die Ihnen als Entwickler die programmtechnische Steuerung und Automatisierung dieser Fenster und anderer IDE-Funktionen ermglichen, wie Projektmappen- und Projekterstellungskonfigurationen, Codebearbeitung und Debugging. Mit dem Automatisierungsmodell knnen Sie VSMacros, Add-Ins und Assistenten erstellen, um Aufgaben zu automatisieren, das Erscheinungsbild der IDE zu ndern und auf IDE-Ereignisse zu reagieren.

Als Beispiel knnen die folgenden Objekte und Schnittstellen genannt werden:

  • Das Tasklist-Objekt stellt die Aufgabenliste dar.

  • Das Toolbox-Objekt stellt die Toolbox dar.

  • Das ToolboxTab-Objekt stellt eine Registerkarte in der Toolbox dar.

  • Das ToolboxItem-Objekt stellt ein Element in der Toolbox dar.

Einige Objekte sind Auflistungen anderer Objekte, d.h. sie enthalten bzw. verweisen auf mehrere identische Objekte. Die ToolboxTabs-Auflistung enthlt z.B. ein oder mehrere ToolboxTab-Objekte, von denen jedes eine Registerkarte in der Toolbox darstellt. Die ToolboxItems-Auflistung enthlt ein oder mehrere ToolboxItem-Objekte, von denen jedes ein Element der Registerkarten in der Toolbox darstellt.

Das Visual-Studio-.NET-Automatisierungsmodell setzt sich aus verschiedenen Untermodellen zusammen, von denen jedes einen wesentlichen Funktionsbereich abdeckt. Auch wenn hier verschiedene Segmente gezeigt werden, ist zu beachten, dass das Kernumgebungsmodell und smtliche Untermodelle fr alle Visual Studio .NET-Sprachen identisch und gleichermaen zugnglich sind.

Bild01

Abbildung 1.

Modellname

Beschreibung

Kernumgebungsmodell

Umfasst den grten Teil des
Visual-Studio-.NET-Automatisierungsmodells. Es enthlt Objekte zur Steuerung der IDE-Elemente (d.h. Tool- und Dokumentfenster, Befehle, Mens usw.), Ereignisse und IDE-Funktionen.
Der grte Teil des Visual-Studio-.NET-Automatisierungsmodells ist fr alle Visual Studio .NET-Sprachen gleich. Es sind einige zustzliche Objekte
fr Projekte und das Microsoft Visual C++ .NET-Codemodell verfgbar.

Projektmodell

Umfasst sowohl gemeinsame als auch sprachenspezifische Objekte zur Steuerung von Projektmappen, Projekten und Projektelementen. Gemeinsame

Projektmappen-/Projektobjekte knnen fr beliebige Visual Studio .NET-Projekte verwendet werden, whrend sprachenspezifische Projektobjekte nur mit einer bestimmten Visual Studio .NET-Sprache arbeiten knnen.

Das Projektmodell ist fr alle Visual Studio .NET-Sprachen gleich. Visual C++ .NET bietet einige zustzliche Erweiterungen, die fr diese Sprache geeignet sind.

Editormodell

Umfasst Objekte zum Bearbeiten des Texts im Code-Editor, wie dem Einfgen und Lschen von Code, dem Formatieren und Verschieben von Code, dem Setzen von Lesezeichen usw.
Das Editormodell ist fr alle Visual Studio .NET-Sprachen gleich.

Codemodell

Umfasst Objekte zum Ermitteln von Code- und Projektelementen und zum ndern von Codedefinitionen. Dieses Modell legt die Klassen, Schnittstellen, Strukturen usw. sowie die Elemente dieser Typen offen.

Das Codemodell ist fr alle Visual Studio .NET-Sprachen gleich. Visual C++ .NET bietet einige zustzliche Erweiterungen, die fr diese Sprache geeignet sind.

Formularmodell

Umfasst Objekte zum Steuern von Windows
Forms und Formulareigenschaften, schliet Web Forms jedoch aus.
Das Formularmodell ist fr alle Visual Studio .NET-Sprachen gleich.

Debuggermodell

Umfasst Objekte zum Steuern des Visual Studio .NET-Debuggers.

Das Debuggermodell ist fr alle Visual Studio .NET-Sprachen gleich.

Erstellungsmodell

Umfasst Objekte zum Steuern von Vorgngen und Konfigurationen fr die Projektmappen- und Projekterstellung.

Ermglicht das programmtechnische Festlegen von Debugoptionen und das Erstellen von automatisierten bzw. unbeaufsichtigten Projektmappen.

Das Erstellungsmodell ist fr alle Visual Studio .NET-Sprachen gleich.

Jedes dieser Untermodelle enthlt Objekte, die sich auf ein bestimmtes Benutzeroberflchen-Element oder eine bestimmte Funktion von Visual Studio .NET beziehen. So verfgt z.B. das Kernumgebungsmodell das Gruppen von verwandten Objekten und Auflistungen enthlt, die fr alle

Visual Studio .NET-Programmiersprachen gleich sind ber Objekte, die die Bearbeitung der Toolbox, der Aufgabenliste, des Codes im Code-Editor usw. ermglichen. Das Debuggermodell enthlt Gruppen von verwandten Objekten, ber die Debuggingaspekte, wie Haltepunkte, Prozesse, Threads, Stackframes usw. gesteuert werden knnen.

Auch wenn sich das Visual-Studio-.NET-Automatisierungsmodell aus Untermodellen zusammensetzt, ist das gesamte Modell selbst programmtechnisch nahtlos, und es gibt keine Begrenzungen zwischen den verschiedenen Modellen, auer dass einige Modelle (z.B. das Formularmodell) in separaten Typbibliotheken oder Assemblys enthalten sind.

 

Das Visual-Studio-.NET-Automatisierungsobjektmodell Diagramm

Der folgende Link fhrt Sie zu einer hierarchischen bersicht des gesamten Visual-Studio-.NET-Automatisierungsmodells: Automation Object Model Chart.

 

Das Spektrum der Visual-Studio-.NET-Automatisierung

Visual Studio .NET bietet drei verschiedene Mglichkeiten fr den Zugriff auf das Automatisierungsmodell:

  • Visual Studio .NET-Makros (VSMacros)

  • Add-Ins und Assistenten

  • Visual Studio Integrator Program (VSIP)

VSMacros

VSMacros stellen die einfachste Mglichkeit dar, die IDE mit Hilfe von Code zu automatisieren und zu erweitern. Sie sorgen nicht nur fr eine erhebliche Steigerung der Produktivitt, indem sie Ihnen das Aufzeichnen mehrerer Aktionen in der IDE ermglichen, die dann in Form eines einzelnen Befehls wiedergegeben werden knnen, sondern knnen auch als Tool zum Erlernen des Visual-Studio-.NET-Automatisierungsmodells verwendet werden. VSMacros werden ber eine separate, mit umfassenden Features ausgestattete Entwicklungsumgebung erstellt, die als "VSMacros-IDE" bezeichnet wird und auf der Visual Studio .NET-IDE basiert. Sie verwendet die Microsoft Visual Basic .NET-Sprache und wurde eigens fr die Bearbeitung und das Debuggen von VSMacros entwickelt. Weitere Informationen zu VSMacros finden Sie unter Automating Repetitive Actions by Using Macros und Macros Development Environment.

Add-Ins und Assistenten
Add-Ins sind zeit- und arbeitssparende Anwendungen, die der IDE hinzugefgt und in ihr verwendet werden. Es handelt sich dabei um COM-Objekte, die die IDTExtensibility2-Schnittstelle implementieren und ber das Visual-Studio-.NET-Automatisierungsmodell mit der IDE kommunizieren. Die meisten Programmiersprachen stellen ber ihre eigenen Typbibliotheken zustzliche Automatisierungsobjekte bereit. Diese Bibliotheken werden unter Zugreifen auf das Automatisierungsmodell beschrieben.

Im Gegensatz zu Makros bestehen Add-Ins aus kompiliertem binrem Code. Dadurch wird Ihr geistiges Eigentum geschtzt. Sie knnen Add-Ins in jede COM-Sprache implementieren, wie Visual C++ .NET, Visual Basic .NET, Visual C# .NET usw.

Fr die meisten Entwickler reichen VSMacros zum Programmieren fr das Visual-Studio-.NET-Automatisierungsmodell aus. In einigen Fllen knnen Add-Ins jedoch die bessere Wahl darstellen z.B. fr ISVs, die der IDE nahtlos neue Features hinzufgen mchten. Add-Ins binden solche Features so nahtlos in die Visual Studio .NET-IDE ein, als wren sie ein fester Bestandteil.

Auerdem ermglichen Add-Ins einige weitere Dinge, zu denen VSMacros nicht in der Lage sind. Mit Add-Ins haben Sie folgende Mglichkeiten:

  • Erstellen von benutzerdefinierten Eigenschaftenseiten fr das Dialogfeld Optionen im Men Extras. Weitere Informationen finden Sie unter Controlling Tools Options Settings.

  • Erstellen von Toolfenstern, die sich wie Visual Studio .NET-Toolfenster verhalten. Weitere Informationen finden Sie unter Creating and Controlling Tool Windows.

  • Dynamisches Aktivieren und Deaktivieren von Befehlen in Mens und Befehlsleisten. Weitere Informationen finden Sie unter Adding and Handling Commands.

  • Hinzufgen von Kontakt- und beschreibenden Informationen zum Feld Info in der Visual Studio .NET-Hilfe.

Weitere Informationen zu Add-Ins finden Sie unter Erstellen von Add-Ins. Bei Assistenten handelt es sich um eine Reihe von automatisierten Schritten, die den Benutzer bei der Ausfhrung von schwierigeren oder komplizierteren Aufgaben untersttzen. Visual Studio .NET stellt z.B. den Add-In-Assistenten bereit, mit dem der Benutzer ein Add-In-Projekt und ein Bereitstellungsprojekt erstellen kann. Sie knnen eigene Assistenten fr Benutzer erstellen, indem Sie ein COM-Objekt erstellen, das die IDTWizard-Schnittstelle implementiert. Assistenten werden normalerweise ber die Dialogfelder Neues Projekt oder Neue Datei aufgerufen. Weitere Informationen zu Assistenten finden Sie unter Erstellen von Assistenten.

Visual Studio Integration Program (VSIP)

Fr einen Groteil der Visual-Studio-.NET-Benutzer werden die meisten Anforderungen durch VSMacros, Add-Ins und Assistenten abgedeckt.

Einige ISVs mssen jedoch ber die grundlegenden Mglichkeiten des Visual Studio-Automatisierungsmodells hinausgehen. Wenn ein Benutzer z.B. eine neue Programmiersprache in die Visual-Studio-.NET-IDE integrieren mchte, mssen folgende Komponenten bereitgestellt werden:

  • Ein neuer Projekttyp

  • Ein angepasster Editor

  • Erweiterte Debuggingfeatures

Visual Studio Integration Program bzw. VSIP soll bei dieser Problematik helfen. VSIP stellt die Tools und Informationen bereit, die Sie fr die Integration Ihrer Produkte in die Visual-Studio-.NET-Umgebung bentigen. Bei VSIP, das sich aus einer Sammlung von SDKs zusammensetzt, handelt es sich um eine Entwicklersuite bzw. -plattform, die VSIP-Partnern eine genauere und umfassendere Kontrolle ber die Umgebung ermglicht, indem sie den Zugriff auf weitere Schnittstellen und eine vollstndige Integration der Visual Studio .NET-Hilfe erlaubt. Mit VSIP knnen Partner eine umfassendere Funktionalitt ber die IDE ihrer Benutzer bereitstellen. Weitere Informationen zu VSIP finden Sie unter https://msdn.microsoft.com/vstudio/vsip/default.asp.

Auswhlen des geeigneten Automatisierungsverfahrens
Wenn Sie sich nicht sicher sind, auf welche Weise Sie neue Funktionen in die IDE integrieren sollen, wgen Sie die folgenden Faktoren ab.

Mchten Sie den Code oder eine kompilierte Anwendung verteilen?

  • Verteilen des Codes In diesem Fall knnen Sie ein VSMacro verwenden. Sie knnen VSMacros bereitstellen, indem Sie die zugehrigen Projektdateien an den neuen Speicherort kopieren. Es ist kein Setup und auch keine Registrierung vorhanden, doch mssen die Benutzer Ihres Makros den Befehl Makroprojekt laden unter Makros im Men Extras verwenden, um die Makros einsetzen zu knnen. Weitere Informationen finden Sie unter Recording Macros.

  • Verteilen einer kompilierten Anwendung In diesem Fall knnen Sie entweder ein Add-In oder einen Assistenten verwenden. Add-Ins und Assistenten schtzen Ihr geistiges Eigentum durch Kompilierung, besitzen jedoch den zustzlichen Overhead eines Bereitstellungsprojekts oder einer anderen Setupform, wie das Registrieren des Add-Ins oder Assistenten und das Kopieren der VSZ-Dateien in den Korrekturort fr Assistenten.

Welche Programmiersprache mchten Sie zum Entwickeln Ihrer Automatisierungsanwendung verwenden?

  • Visual Basic Mit dieser Sprache knnen Sie VSMacros, Add-Ins oder Assistenten erstellen.

  • Andere Programmiersprachen Mit anderen Programmiersprachen knnen Sie Add-Ins und Assistenten erstellen, die die Schnittstellen IDTExtensibility2 und IDTWizard verwenden. Sie mssen in der Lage sein, ein CoCreate-fhiges COM-Objekt in die Programmiersprache zu implementieren.

Erfordert die Aufgabe Benutzereingaben?

  • Keine Benutzereingabe erforderlich In diesem Fall ist ein VSMacro oder Add-In ungeeignet.

  • Einfache Eingabe erforderlich In diesem Fall kann ein VSMacro, Add-In oder Assistent verwendet werden.

  • Komplexe Eingabe erforderlich Wenn die Eingabe mehrere Schritte oder eine Gltigkeitsprfung umfasst, stellt ein Assistent normalerweise die beste Lsung dar. Falls Sie jedoch eine Benutzeroberflche in einem Toolfenster platzieren mssen, ist ein Add-In erforderlich.

Wie kompliziert ist die Aufgabe, die automatisiert werden soll?

  • Einfach Wenn die Aufgabe mit wenigen Codezeilen ausgefhrt werden kann, ist ein VSMacro geeignet.

  • Kompliziert Wenn die Aufgabe die Integration von Formularen, Verweisen und Klassen umfasst, stellen VSMacros die beste Wahl dar. In anderen Fllen kann ein Add-In oder ein Assistent geeigneter sein.

Wie wird der Benutzer die Anwendung voraussichtlich starten?

  • Mens, Befehlsleisten oder Schlsselbindungen In diesem Fall knnen Sie ein Add-In oder ein VSMacro verwenden.

  • Tastenkombination oder Makro-Explorer In diesem Fall knnen Sie ein VSMacro verwenden.

  • Dialogfeld Neues Projekt oder Neues Element Zum Hinzufgen eines neuen Projekts oder einer neuen Datei zu einer Anwendung wird normalerweise ein Assistent verwendet.

Welche Lebensdauer hat Ihre Anwendung?

  • Kurzfristige Nutzung In diesem Fall kann ein VSMacro ausreichend sein.

  • Langfristige Nutzung VSMacro, Assistent und Add-In sind in diesem Fall gleichermaen geeignet.

Was bentigen Sie fr die Entwicklung?

  • Automatisierte Aufgabe VSMacros, Add-Ins und Assistenten knnen alle zum Automatisieren von Aufgaben verwendet werden.

  • Benutzerdefinierte Eigenschaftenseiten fr das Dialogfeld Optionen unter Extras Diese Funktionalitt wird von Add-Ins untersttzt.

  • Benutzerdefiniertes Tool oder Dokumentfenster Diese Funktionalitt wird von Add-Ins untersttzt.

  • Neuer Projekttyp Werden Sie ein VSIP-Partner.

  • Untersttzung fr eine neue Programmiersprache in .NET oder einen neuen Editor Werden Sie ein VSIP-Partner.

 

Zugreifen auf das Automatisierungsmodell

Das Visual-Studio-.NET-Automatisierungsmodell ist grtenteils in einer .NET-Assembly namens EnvDTE enthalten. (Die Version der COM+-Komponententypbibliothek wird "Microsoft Developer Environment 7.0" genannt.) Diese Assembly/Typbibliothek umfasst alle zuvor erwhnten Untermodelle mit Ausnahme des Formularmodells, das in System.Windows.Forms enthalten ist. Weitere Assemblys untersttzen sprachenspezifische Automatisierungsfunktionen. Die folgende Liste enthlt weitere Typbibliotheken, die fr die Automatisierung und Erweiterbarkeit relevant sind:

Name der .NET-Assembly/des Namespace

Name der COM-Typbibliothek

Beschreibung

EnvDTE

Microsoft Development Environment 7.0

Enthlt Objekte fr die Kernautomatisierungs- bzw. Kernerweiterungsmodelle, wie IDE, Editor, Code, Erstellung und Debugging.

VSLangProj

Microsoft Visual Studio .NET VB- und C#-projektspezifisches Modell

Enthlt Objekte fr das Projektobjektmodell von Visual Basic .NET und Visual C# .NET. Es handelt sich dabei um Erweiterungen fr das gemeinsame Projektmodell.

Microsoft.VisualStudio.VCCodeModel

Microsoft Development Environment Visual C++ .NET Code Model 7.0

Enthlt Objekte fr das Visual C++ .NET-Codemodell. Es handelt sich dabei um Erweiterungen fr das gemeinsame Codemodell.

Microsoft.VisualStudio.VCProject

Microsoft Development Environment Visual C++ .NET Project System Engine 7.0

Enthlt Objekte fr das Visual C++ .NET-Projektmodell. Es handelt sich dabei um Erweiterungen fr das gemeinsame Projektmodell.

Microsoft.VisualStudio.VCProjectEngine

Microsoft Development Environment Visual C++ .NET Project System Engine 7.0

Enthlt Objekte fr das Visual C++ .NET-Projektmodell.

Microsoft.VisualStudio.VSWizard

VCWiz 1.0 Type Library

Enthlt die Objekte fr das Visual C++ .NET-Assistentenmodell.

Um (ber Visual Basic .NET oder Visual C# .NET) auf den Inhalt einer Assembly oder Typbibliothek zugreifen zu knnen, mssen Sie zunchst einen entsprechenden Verweis in Ihrem Projekt erstellen. Whlen Sie dazu im Men Projekt die Option Verweis hinzufgen, oder klicken Sie mit der rechten Maustaste auf den Knoten Verweise im Projektmappen-Explorer, whlen Sie Verweis hinzufgen, und klicken Sie dann auf die Assembly/Typbibliothek, auf die Sie verweisen mchten.

Die Namen werden unter zwei unterschiedlichen Registerkarten angezeigt: eine fr .NET-Assemblys und die andere fr COM+-Komponenten. Fr Visual C++ .NET- und Typbibliothekverweise verwenden Sie #include.

Anmerkung Wenn Sie mit Hilfe des Add-In-Assistenten ein Add-In erstellen, wird zur Arbeitserleichterung automatisch ein Verweis fr die EnvDTE-Typbibliothek erstellt.

Fr die meisten Szenarios sollten die Verweise auf .NET-Assemblys gesetzt werden. Wenn Sie einen Verweis auf eine COM-Komponente setzen, verweisen Sie im Grunde genommen auf eine .NET-Assembly. Wenn Sie nmlich einen Verweis auf ein COM-Objekt setzen, bricht Visual Studio .NET die COM-Komponente um, indem eine Metadatenassembly generiert wird. Der eigentliche Verweis fhrt dann zu dieser Assembly, statt zu dem ursprnglichen COM-Objekt.

Nachdem Sie fr die erforderlichen Assemblys oder Typbibliotheken Verweise erstellt haben, knnen Sie auf die zugehrigen Objekte, Schnittstellen, Auflistungen und Elemente zugreifen. ber den Objektbrowser knnen Sie auf die Objekte und Elemente zugreifen, die Ihnen in der Typbibliothek oder .NET-Assembly zur Verfgung stehen. Zum Anzeigen des Objektbrowsers drcken Sie STRG+ALT+J oder whlen die Option Objektbrowser im Untermen Andere Fenster aus. Erweitern Sie den EnvDTE-Knoten (oder einen anderen Knoten), um die verfgbaren Objekte und Elemente anzuzeigen.

Hierarchischer Zugriff auf Objekte

Wie bei den meisten anderen Objektmodellen kann auf die Objekte im Visual-Studio-.NET-Automatisierungsmodell hierarchisch zugegriffen werden. Das heit, dass Sie fr den programmtechnischen Zugriff auf ein Objekt dessen vollstndigen hierarchischen Verweis verwenden mssen. Das StatusBar-Objekt ist z.B. wie folgt in der Hierarchie des Automatisierungsmodells platziert:

Bild02

Abbildung 2. Das "StatusBar"-Object

Das oberste Objekt in der EnvDTE-Typbibliothek ist das DTE-Objekt, das die Visual Studio .NET-IDE darstellt. DTE und dteObject sind vordefinierte globale Variablen in VSMacro-Projekten. Sowohl DTE als auch dteObject werden ber IDTExtensibility2::OnConnection oder IDTWizard::Execute an ein Add-In bergeben.

In der Hierarchie des Visual-Studio-.NET-Automatisierungsmodells ist das StatusBar-Objekt dem DTE-Objekt direkt untergeordnet (siehe oben stehendes Diagramm). Daher wrden Sie zum Erstellen eines programmtechnischen Verweises fr das StatusBar-Objekt in Visual Basic .NET folgenden Code verwenden:

Sub SBarTest() 
    Dim objSBar As StatusBar 
    objSBar = DTE.StatusBar 
    objSBar.Text = "Hallo" 
End Sub

Fr Visual C++ .NET wrde dasselbe Beispiel folgendermaen aussehen (setzt var dteObject voraus):

EnvDTE.StatusBar objSBar; 
objSBar = dteObject.StatusBar; 
objSBar.Text = "Hallo";

Abgesehen von einigen geringfgigen nderungen gelten dieselben Hierarchieregeln, wenn Sie auf Toolfenster verweisen, wie Aufgabenliste, Toolbox, Projektmappen-Explorer usw. Im Falle eines Toolfensters erstellen Sie den entsprechenden Verweis mit Hilfe seiner vordefinierten Fenstertypkonstante und durch Indizierung der Windows-Auflistung.
Zum Erstellen eines Verweises fr die Aufgabenliste knnen Sie z.B.
folgenden Code verwenden:

Dim win As Window = DTE.Windows.Item(Constants.vsWindowKindTaskList) 
Dim objTL As TaskList = win.Object

Automatisierungsbeispiele

Auf der Visual Studio .NET Automation Sample-Website unter https://msdn.microsoft.com/vstudio/nextgen/automation.asp stehen Ihnen eine Reihe von Automatisierungsbeispielen zur Verfgung.

Anhand dieses Codes knnen Sie mhelos lernen, wie Sie bei Programmierungen fr das Automatisierungsmodell vorgehen sollten.

Zustzlich zu diesen Beispielen werden auch in vielen Sprachverweisthemen in Visual Studio .NET kurze Beispielcodeausschnitte bereitgestellt, die fr das jeweilige Thema relevant sind.

 

Erstellen von Add-Ins

Visual Studio .NET enthlt einen Projekt-Assistenten zum Erstellen von Add-Ins. Er befindet sich im Ordner Erweiterungsprojekte unter Andere Projekte im Dialogfeld Neues Projekt. Beim Erstellen haben Sie die Wahl zwischen einem Visual Studio .NET-Add-In oder einem gemeinsamen Add-In. Der Unterschied besteht darin, dass ein gemeinsames Add-In sowohl in Visual Studio .NET- als auch in Microsoft Office-Anwendungen (z.B. Microsoft Word, Excel, PowerPoint usw.) verwendet werden kann, whrend ein Visual Studio .NET-Add-In nur mit Visual Studio .NET und VSMacros funktioniert.

Wenn Sie eine der beiden Optionen auswhlen, wird der Add-In-Assistent gestartet. Der Add-In-Assistent erstellt ein rudimentres, jedoch voll funktionsfhiges Framework, das Sie unmittelbar nach dessen Erstellung ausfhren knnen. Nachdem der Assistent nach der Sprache gefragt hat, in der das Add-In implementiert werden soll, generiert er ein Basisframework, dem Sie Code hinzufgen und das Sie anpassen knnen.

Der Add-In-Assistent fordert Sie zur Eingabe eines Anzeigenamens und einer Beschreibung fr das Add-In auf, die beide im Dialogfeld Add-In-Manager angezeigt werden. Wenn Sie Einzelheiten zu den Optionen in einem Bereich erfahren mchten, klicken Sie auf die zugehrige Hilfeschaltflche. Auerdem knnen Sie festlegen, dass der Assistent Code generiert, der dem Men Extras einen Befehl hinzufgt, um das Add-In in die Visual-Studio-.NET-IDE zu laden und aufzurufen.

Wenn Sie den Assistenten beenden, verfgen Sie ber ein neues Projekt mit einem einzelnen Modul zum Implementieren des Add-Ins. Auerdem haben Sie ein Setup-Projekt, das eine MSI-Datei erstellt, mit der das Add-In auf einem anderen System installiert werden kann (Sie knnen damit auch die Registrierung des Add-Ins auf dem Entwicklungscomputer aktualisieren, was je nach Verwendungszweck des Add-Ins manchmal erforderlich sein kann).

Add-Ins bestehen aus folgenden Komponenten:

  • Add-In-Projekt.

  • Verbindungsklasse Implementiert alle IDTExtensibility2-Methoden. Die primre zu implementierende Methode ist

OnConnection
  • Die Verbindungsklasse enthlt Code zum Bereitstellen des Add-Ins fr den Endbenutzer (z.B. Code zum Hinzufgen einer Schaltflche zu einer Symbolleiste).

  • Add-In-Registrierung Wird automatisch fr Sie ausgefhrt, wenn Sie den Add-In-Assistenten verwenden und das Projekt erstellen. Wenn Sie weitere Befehle hinzufgen oder den Namen eines der vom Add-In bereitgestellten Befehle ndern, mssen Sie das Bereitstellungsprojekt erstellen und die Datei resultant .msi ausfhren, ohne dass Visual Studio .NET ausgefhrt wird, damit die Aktualisierung erfolgen kann.

Der Add-In-Assistent erstellt auch ein Setup-Projekt, damit Sie das Add-In bei Bedarf zu einem spteren Zeitpunkt verteilen knnen.

Informationen zu Setup-Projekten finden Sie unter dem Stichwort "Setup-Projekte" im Visual Studio .NET-Hilfeindex. Wenn Sie mit Hilfe des Add-In-Assistenten ein Add-In auf Ihrem System erstellen, richtet der Assistent alle erforderlichen Registrierungsschlssel auf dem System ein.

Andere Benutzer, die Ihr Add-In verwenden mchten, mssen jedoch das Setup-Projekt ausfhren, damit das Add-In die erforderlichen

Registrierungsschlssel auf ihrem System erstellt.

So erstellen Sie ein Add-In mit dem Add-In-Assistenten

  1. Erstellen Sie ein neues Visual Studio-Add-In-Projekt. Sie finden diesen Projekttyp im Ordner Erweiterungsprojekte unter Andere
    Projekte.

  2. Whlen Sie im Bereich Whlen Sie eine Programmiersprache eine Sprache aus. Dadurch wird die Sprache festgelegt, in der das Add-In generiert wird. Die Auswahl der Sprache liegt ganz bei Ihnen whlen Sie diejenige, mit der Sie am vertrautesten sind.

  3. Whlen Sie im Bereich Whlen Sie einen Anwendungshost eine oder mehrere Anwendungen aus (z.B. Visual Studio .NET). Auf diese Weise knnen Sie die Anwendungen auswhlen, in denen sich das Add-In nach dem Erstellen ausfhren lassen soll.

  4. Geben Sie im Bereich Geben Sie einen Namen und eine Beschreibung ein einen Namen und eine Beschreibung fr das Add-In ein. Dieser Name wird spter in der Liste Verfgbare Add-Ins im Dialogfeld Add-In-Manager angezeigt und informiert die Benutzer ber Verwendungszweck, Funktionsweise usw. des Add-Ins.

  5. Geben Sie im Bereich Whlen Sie die Add-In-Optionen an, ob das Add-In im Men Extras angezeigt werden soll und ob es nur fr denjenigen verfgbar ist, der es installiert, oder auch fr andere Benutzer. Auf diese Weise knnen Sie bestimmte Verhaltensoptionen fr das Add-In festlegen.

  6. Geben Sie im Bereich Auswhlen der Informationen unter "Info" im Hilfemen an, ob das Add-In im Feld Info erwhnt werden soll und welche Informationen es ggf. anzeigen soll. Auf diese Weise knnen Sie ein Info-Fenster fr das Add-In erstellen, das Informationen zu Version, Untersttzung, Lizenz usw. anzeigt. Nachdem Sie Schritt 1 bis 6 ausgefhrt haben, werden die von Ihnen ausgewhlten Optionen auf einer Zusammenfassungsseite angezeigt.

  7. Whlen Sie Fertig stellen, um das Add-In zu erstellen.

Sie haben nun ein voll funktionsfhiges, leeres Add-In. Sie mssen dem Add-In den entsprechenden Code hinzufgen, damit es eine sinnvolle Aufgabe verrichtet. Wenn Sie erfahren mchten, was der Add-In-Assistent hinter den Kulissen tut, schauen Sie sich das Bereitstellungsprojekt, das er erstellt, die OnConnection-Methode und die IDTCommandTarget::Exec-Methode nher an.

Registrieren von Add-Ins

Nachdem Sie das Add-In erstellt haben, muss es unter Microsoft Windows als COM-Komponente registriert werden. Der Add-In-Assistent fhrt diese Registrierung automatisch auf dem Entwicklungscomputer durch. Informationen zum manuellen Registrieren von Add-Ins oder den Registrierungsschlsseln, die durch den Add-In-Assistenten beeinflusst werden, finden Sie im Hilfethema "Add-In-Registrierung". Durchsuchen Sie den Visual Studio .NET-Index nach den Stichwrtern "Add-ins" und "Registrierung", um es anzuzeigen.

Verwenden von Windows Forms in Toolfenstern

Derzeit knnen Sie Windows Forms nur mit Hilfe eines speziellen Shimsteuerelements in einem Toolfenster verwenden. Sie knnen Toolfenster nur mit ActiveX-Steuerelementen oder Dokumentobjekten erstellen. Beim Shimsteuerelement handelt es sich einfach um ein ActiveX-Steuerelement, das als Host fr ein Windows Form-Objekt fungiert. Dieses Thema soll in einem spteren Artikel ausfhrlicher behandelt werden. Hier werden lediglich die Grundlagen erlutert.

Das Shimsteuerelement kann kostenlos von der Visual Studio .NET Automation Sample-Website unter https://msdn.microsoft.com/vstudio/nextgen/automation.asp gedownloadet werden.

So erstellen Sie mit dem Shimsteuerelement ein Toolfenster in Visual C# .NET

  1. Fgen Sie Ihrem Add-In ein Benutzersteuerelement hinzu (in diesem Fall eines mit dem Namen HostUserControl). Dieses Benutzersteuerelement wird spter dem Toolfenster hinzugefgt. Das Steuerelement kann sich in einer anderen Assembly befinden. Der unten stehende Code wird jedoch standardmig fr die Assembly des Add-Ins verwendet.

  2. Fgen Sie dem Add-In den folgenden Code hinzu:

    object objTemp = null; 
    EnvDTE.Window windowToolWindow = applicationObject.Windows. _ 
      CreateToolWindow (addInInstance, "VSUserControlHost. _ 
      VSUserControlHostCtl", "C#-Toolfenster", guidstr, ref objTemp); 
    windowToolWindow.Visible = true; 
    VSUserControlHostLib.IVSUserControlHostCtl objControl = _ 
      (VSUserControlHostLib.IVSUserControlHostCtl)objTemp; 
    objControl.HostUserControl(System.Reflection.Assembly. _ 
    GetExecutingAssembly().Location, "ControlClassHere");
    
  3. ndern Sie den Text

    ControlClassHere 
    

    in der letzten Zeile des Codes in den vollstndigen Namen der Windows Forms-Klasse, die verwendet werden soll.

Stellen Sie sicher, dass

windowToolWindow.Visible = true

vor HostUserControl aufgerufen wird. Andernfalls wird das Benutzersteuerelement oben links im Bildschirm angezeigt und mit dem Desktop verknpft. Sie knnen das Fenster anschlieend ausblenden, die Zeile muss jedoch vorhanden sein.

Beibehalten des Status fr Add-Ins, VSMacros und Assistenten
Wenn Sie Variablen erstellen und diesen in einem Projekt, Add-In oder Assistenten Werte zuweisen, gehen diese Werte normalerweise verloren, sobald die Projektmappe oder das Add-In entladen werden oder die IDE heruntergefahren wird. Das Visual-Studio-.NET-Automatisierungsmodell stellt ein Objekt bereit, das als Global-Objekt bezeichnet wird und Automatisierungsclients die Beibehaltung oder Speicherung der Variablenwerte ermglicht. Sie knnen die gewnschten Statusinformationen in der Projektmappendatei, einer Projektdatei oder in Abhngigkeit von dem Benutzer/Computer in den Anwendungsdaten speichern.

Zum Anzeigen von Einzelheiten und Beispielen zur Verwendung des Global-Objekts zum Beibehalten von variablen Daten durchsuchen Sie den Visual Studio .NET-Hilfeindex nach dem Stichwort "Global-Objekt", und whlen Sie dann "Grundlegendes".

 

Erstellen von Assistenten

Bei Assistenten wie dem Add-In-Assistenten handelt es sich um eine Art Automatisierungsclient, der den Benutzer schrittweise durch eine Serie von Aktionen fhrt, um eine komplexe oder schwere Aufgabe durchzufhren, und anschlieend beendet wird. Assistenten werden durch Implementierung der IDTWizard-Schnittstelle erstellt und verfgen ber nur eine Methode (Execute), die den Code zum Ausfhren des Assistenten enthlt. Ein

Assistent kann so programmiert werden, dass er entweder eine voll funktionsfhige Anwendung erstellt oder aber eine rudimentre Anwendung, der der Benutzer zustzlichen Code hinzufgen muss, damit sie ordnungsgem funktioniert. Dies ist z.B. beim Add-In-Assistenten der Fall.

Weitere Informationen zum Erstellen von Assistenten mit dem Visual C++ .NET-HTML-Stil-Assistenten finden Sie unter den Stichwrtern "Benutzerdefinierte Assistenten, Entwerfen" und "Benutzerdefinierte Assistenten, Entstellen" im Visual Studio .NET-Hilfeindex.

Auch wenn Assistenten mit einem beliebigen Erscheinungsbild erstellt werden knnen, setzen sie sich normalerweise aus einem oder mehreren Fenstern bzw. Bereichen zusammen. Neben einem beschreibenden Bild, das sich z.B. oberhalb oder auf der linken Seite des Bereichs, der Beschriftung oder der Anweisungen befindet, knnen Bereiche auch eine Flche enthalten, auf der Steuerelemente fr die Navigation, wie Weiter, Zurck und Abbrechen, platziert werden.

Bild03

Abbildung 3. Beispiel fr einen Assistenten

Der fertige Assistent kann als Vorlage in den Dialogfeldern Neues Projekt und Neue Datei zur Verfgung gestellt werden. So erstellen Sie einen Assistenten

  1. Erstellen Sie ein neues Klassenbibliotheksprojekt in der Visual Studio .NET-Sprache Ihrer Wahl.

  2. Implementieren Sie die IDTWizard-Schnittstelle in das Klassenmodul. Verwenden Sie dazu in Visual Basic .NET z.B. folgenden Code:

    Implements IDTWizard
    
  3. Erstellen Sie die Execute-Prozedur. Sie knnen dazu die Dropdown-Kombinationsfelder im Visual Basic .NET-Code-Editor verwenden. Die Execute-Methode wird aufgerufen, wenn ein Assistent zum ersten Mal aktiviert wird.

  4. Fgen Sie der Execute-Methode des IDTWizard-Assistenten smtlichen gewnschten Code hinzu.

  5. Kompilieren Sie das Projekt. Wenn Sie Visual Basic .NET oder Visual C# .NET verwendet haben, wird dadurch eine .NET Framework-Assembly erstellt.

  6. Wenn Sie einen Visual Basic .NET- oder einen Visual C# .NET-Assistenten erstellen, mssen Sie die Komponente mit Hilfe eines Assembler-Registrierungstools (REGASM) registrieren, sofern Sie nicht das Kontrollkstchen Fr COM-Interop registrieren unter dem Knoten Configuration/Build auf der Eigenschaftenseite des Projekts aktivieren. Anschlieend wird der Assistent automatisch registriert, wenn das Projekt auf dem Computer des Entwicklers erstellt wird.

  7. Erstellen Sie eine VSZ-Datei fr den Assistenten. Dadurch wird er in den Dialogfeldern Neues Projekt oder Neue Datei angezeigt. Weitere Informationen finden Sie im Abschnitt "VSZ-Dateien" dieses Artikels.

    Anmerkung Sie knnen auch eine optionale VSDir-Datei fr den Assistenten erstellen. Eine VSDir-Datei enthlt die Informationen, die in den Dialogfeldern Neues Projekt oder Neue Datei als Beschreibung fr den Assistenten angezeigt werden. Sie ermglicht es Ihnen, ein Symbol festzulegen und in der Liste zu platzieren. Weitere Informationen finden Sie im Abschnitt "VSDir-Dateien" dieses Artikels.

An dieser Stelle knnen Sie den Assistenten ausfhren, indem Sie im Men Datei unter Neu die Option Projekt auswhlen und dann zum neuen Assistenten im Dialogfeld Neues Projekt navigieren.

Zum Anzeigen eines Symbols fr den neuen Assistenten geben Sie entweder einen Pfad zu der Symboldatei (ICO) in der VSDir-Datei ein oder platzieren im Verzeichnis der Assistentendatei eine Symboldatei, die denselben grundlegenden Dateinamen wie die VSZ-Datei trgt, jedoch die Erweiterung ICO haben sollte. Wenn der Assistent z.B. MyWizard.dll heit, geben Sie der ICO-Datei den Namen MyWizard.ico.

VSZ-Dateien

Visual Studio .NET verwendet zum Starten von Assistenten einen Dateityp namens VSZ. Bei diesen Dateien handelt es sich um Textdateien mit der Erweiterung VSZ, mit deren Hilfe Visual Studio den Assistenten bestimmt, der aufgerufen werden soll, und ggf. ermittelt, welche benutzerdefinierten Informationen an ihn bergeben werden sollen.

Eine VSZ-Datei ist im Grunde genommen eine vereinfachte Version einer INI-Textdatei, hat jedoch keine bezeichneten Abschnitte. Der erste Abschnitt speichert Informationen, die der Visual Studio-Umgebung bekannt sind. Der zweite Abschnitt ermglicht es der Umgebung, assistentenspezifische Parameter zu sammeln und an den Assistenten zu bergeben.

Im Folgenden wird ein Beispiel fr eine VSZ-Datei gezeigt:

VSWizard 7.0 
Wizard=VIDWizard.CBlankSiteWizard 
Param=<item1> 
Param=<item2>

Sie setzt sich aus den folgenden Abschnitten zusammen:

  • VSWizard Dies ist die Versionsnummer des Vorlagendateiformats, das fr Visual Studio .NET "VSWizard 7.0" oder "VSWizard 6.0" lautet. Die Verwendung einer anderen Nummer lst den Fehler "Ungltiges Format" aus.

  • Wizard Hierbei handelt es sich entweder um die
    ProgID oder die Zeichenfolgendarstellung der CLSID des Assistenten, von dem Visual Studio eine Co-Instanz erstellen soll. Bei Verwendung einer GUID folgt sie dem Format <8>-<4>-<4>-<4>-<12>.

  • Param Diese Parameter sind optional, und Sie knnen dem Add-In so viele hinzufgen wie erforderlich. Mit ihrer Hilfe kann die VSZ-Datei zustzliche benutzerdefinierte Parameter an den Assistenten
    bergeben. Jeder Wert wird als Zeichenfolgenelement in einem Array von Varianten an den Assistenten bergeben. Anhand von benutzerdefinierten Parametern knnen Sie ein Assistenten-COM-Objekt auf verschiedene Weise starten, indem Sie z.B. einige Optionen voreinstellen oder einige Schritte oder Bereiche nicht anzeigen.

VSDir-Dateien

Wahlweise knnen Sie auch eine VSDir-Datei erstellen, um den Assistenten in den Dialogfeldern zu positionieren. Eine VSDir-Datei ist eine Textdatei mit der Erweiterung VSDIR, die Anzeigeinformationen zu den Elementen der Dialogfelder Element hinzufgen und Neues Projekt enthlt, wie Namen, Anzeigereihenfolge und zugehrige Symbole.

Ein Verzeichnis kann zwar mehrere VSDir-Dateien enthalten, doch enthlt eine einzelne VSDir-Datei normalerweise Datenstze fr mehrere Assistenten, Ordner und Vorlagen. Die Datenstze in der Datei werden durch Zeilenendezeichen getrennt und die Felder in den einzelnen Datenstzen durch vertikale Striche (|). Jedes optionale Feld, fr das keine sinnvollen Daten vorhanden sind, sollte zwei vertikale Striche nebeneinander ohne Zeichen dazwischen enthalten.

Ein Beispiel einer VSDir-Datei sowie Einzelheiten zu den einzelnen Feldern finden Sie unter VSDir-Dateien in der Visual Studio .NET-Produktdokumentation.

 

Bereitstellen von und Zugreifen auf Add-Ins und Assistenten

Nachdem Sie das Add-In bzw. den Assistenten erstellt haben, mssen Sie es/ihn in irgendeiner Weise fr den Benutzer bereitstellen, damit es/er ausgefhrt werden kann. Sie knnen eine der folgenden Methoden verwenden:

  • Add-In-Manager Das Dialogfeld Add-In-Manager (wird angezeigt, wenn Sie im Men Extras die Option Add-In-Manager auswhlen) zeigt alle unter Visual Studio .NET registrierten Add-Ins an. ber dieses Dialogfeld knnen Sie das Add-In sofort in die IDE laden oder entladen und ggf. sein Verhalten und seine Befehlszeilenoptionen festlegen.

  • Mens Mit Hilfe der Optionen im Add-In-Assistenten oder im Code, den das Add-In-Projekt fr Sie erstellt hat, knnen Sie festlegen, ob dem Men Extras ber das Add-In ein Befehl hinzugefgt wird und ob die IDE das Add-In automatisch ldt, wenn der Endbenutzer den Befehl aufruft. Wenn Sie diese Option auswhlen, wird ein Befehl erstellt und im Men Extras platziert. Auerdem wird ein Platzhalterbild in der Symbolleiste angezeigt.

  • Symbolleisten ber das CommandBar-Objekt knnen Sie der Visual Studio .NET-Symbolleiste eine Schaltflche hinzufgen, die das Add-In aktiviert, sobald der Benutzer darauf klickt. Wie bereits erwhnt, bietet der Add-In-Assistent auch eine Option, die diesen Vorgang automatisch durchfhrt. Wenn Sie sehen mchten, wie der Add-In-Assistent dabei vorgeht, knnen Sie auf der Automation Samples-Website unter https://msdn.microsoft.com/vstudio/nextgen/automation.asp den Code fr den Add-In-Assistenten anzeigen.

  • IDE-Start/Systemereignisse ber den Add-In-Manager knnen Sie festlegen, dass das Add-In beim Starten der IDE gestartet wird. Unter Verwendung des Events-Objekts und der verschiedenen anderen Ereignisobjekte, wie ProjectsEvents, SolutionsEvents, OutputWindowEvents, DebuggerEvents usw., knnen Sie die Aktivierung des Add-Ins mit einem Systemereignis verknpfen. Das Add-In wird beim Starten der IDE geladen, tut jedoch nichts, bevor nicht eines der Ereignisse auftritt, mit denen es verknpft ist. Ein Beispiel fr die Reaktion auf IDE-Ereignisse finden Sie im EventWatcher-Add-In-Beispiel in der MSDN Automation Samples-Website unter: https://msdn.microsoft.com/vstudio/nextgen/automation.asp.

Problematik von Befehlen beim Entwickeln von Add-Ins

Wenn Sie mit Hilfe des Add-In-Assistenten ein Add-In erstellen und es anschlieend ausfhren, wird eine neue Instanz von Visual Studio .NET gestartet, in der Sie das resultierende Add-In testen und debuggen knnen.

Ein oder mehrere Befehle fr das Add-In werden in einem oder mehreren Mens platziert, wie dem Men Extras. Wenn Sie mit dem Debuggen des Add-Ins fertig sind und diese zweite Instanz von Visual Studio .NET schlieen, werden die Befehlsinformationen gespeichert.

Wenn Sie die erste Instanz von Visual Studio .NET schlieen, werden die von der zweiten Instanz gespeicherten Befehlsinformationen jedoch berschrieben. Dies hat zur Folge, dass Ihr neuer Add-In-Befehl nach dem erneuten Start von Visual Studio .NET nicht mehr im Men angezeigt wird. Es gibt jedoch ein Verfahren, mit dem Sie die Befehle im Men wiederherstellen knnen.

So stellen Sie Add-In-Befehle im Men wieder her

  1. Erstellen Sie das vom Assistenten erstellte Setup-Projekt.

  2. Schlieen Sie alle Instanzen von Visual Studio .NET.

  3. Fhren Sie die MSI-Datei ber das Setup-Projekt aus.

  4. Starten Sie Visual Studio .NET neu.

Nun werden die Add-In-Befehle immer angezeigt, wenn Sie Visual Studio .NET ausfhren.

Anmerkung Das Setup-Projekt lsst sich schneller erstellen und installieren, wenn Sie es so ndern, dass das neu verteilbare Mergemodul der .NET-Laufzeit ausgeschlossen wird.

 

Debuggen von Add-Ins

Das Debuggen eines Add-Ins erfordert zwei Instanzen von Visual Studio .NET. Der Code fr das Add-In wird in der ersten IDE-Instanz geffnet, whrend das Add-In selbst in der zweiten Instanz verwaltet wird.
Wenn Sie das Add-In ber die zweite Instanz prfen, werden alle auftretenden Fehler in der ersten Instanz reflektiert.

Bild04

Abbildung 4. Debuggen von Add-Ins

In der ersten Instanz knnen Sie auch normale Debuggingaufgaben durchfhren, wie Festlegen von Haltepunkten, Beobachten von Variablen usw.

Beim Erstellen und/oder Debuggen von Add-Ins gibt es jedoch ein Problem mit persistenten Schaltflchen oder Befehlen in der Symbolleiste.
Einzelheiten dazu finden Sie unter "Problematik von Befehlen beim Entwickeln von Add-Ins" im Abschnitt Bereitstellen von und Zugreifen auf Add-Ins und Assistenten.

 

Schlussfolgerung

In diesem Artikel haben Sie die Features des Visual-Studio-.NET-Automatisierungsmodells kennen gelernt. Darber hinaus haben Sie Nheres zu VSMacros, Add-Ins und Assistenten und zu deren Erstellung und Verwendung erfahren.
Die Visual-Studio-.NET-Automatisierung ist ein leistungsstarkes Tool zum Automatisieren, Anpassen und Erweitern der IDE und trgt zur Optimierung Ihrer Arbeit bei. Sie ermglicht Ihnen eine genaue bedarfsgerechte Anpassung der IDE und reduziert den Zeit- und Arbeitsaufwand fr den Entwicklungsvorgang um ein Vielfaches.