Komponenten eines Add-In-Projekts
Add-Ins für Visual Studio sind in Visual Studio 2013 veraltet. Sie müssen für Ihre Add-Ins ein Upgrade auf VSPackage-Erweiterungen durchführen. Weitere Informationen über das Durchführen eines Upgrades finden Sie unter FAQ: Konvertieren von Add-Ins in VSPackage-Erweiterungen.
Add-In-Projekte sind Klassenbibliothekprojekte, die mithilfe des Add-In-Assistenten erstellt und in DLLs kompiliert werden. Add-In-Projekte enthalten eine Quellcodedatei mit dem Namen Connect, wobei es sich auch um den Namen der Klasse handelt. Die Connect-Klasse implementiert eine Schnittstelle mit dem Namen IDTExtensibility2, die Befehle zwischen dem Add-In und der integrierten Entwicklungsumgebung (Integrated Development Environment – IDE) von Visual Studio übergibt.
IDTExtensibility2 stellt fünf Methoden bereit, die bei Implementierung als Ereignisse fungieren.
Methode |
Beschreibung |
---|---|
Diese Methode wird aufgerufen, wenn das Add-In in Visual Studio geladen wird. |
|
Diese Methode wird aufgerufen, wenn Visual Studio das Laden beendet hat. |
|
Diese Methode wird aufgerufen, wenn ein Add-In in Visual Studio geladen bzw. entladen wird. |
|
Diese Methode wird aufgerufen, wenn Visual Studio geschlossen wird. |
|
Diese Methode wird aufgerufen, wenn das Add-In aus Visual Studio entladen wird. |
Neben der IDTExtensibility2-Schnittstelle wird die IDTCommandTarget-Schnittstelle automatisch implementiert, wenn Sie die Benutzerschnittstellenoption bei Verwendung des Add-In-Assistenten zum Erstellen eines Add-Ins aktivieren. Wenn Sie in dem Add-In Befehlsleisten erstellen oder bearbeiten möchten, müssen Sie auch den Microsoft.VisualStudio.CommandBars-Namespace implementieren.
OnConnection-Methode
Die OnConnection-Methode ist definitiv die wichtigste in Add-Ins verwendete Methode, da sie immer dann aufgerufen wird, wenn ein Add-In geladen wird. Darüber hinaus wird sie verwendet, um weiteren Automatisierungscode im Add-In aufzurufen. An die OnConnection-Methode werden vier Parameter übergeben: Application, ConnectMode, AddInInst und custom. Application steht für die Visual Studio-IDE. Er wird als DTE2-Objekt mit dem name, _applicationObject umgewandelt. Dieses Objekt stellt das Hauptobjekt im zentralen Automatisierungsmodell dar und bietet Zugriff auf alle zugehörigen Typen und Member. ConnectMode (dessen Werte in Extensibility.extConnectMode enthalten sind) stellt die Art und Weise dar, in der das Add-In geladen wird: über die Befehlszeile, durch Öffnen einer Projektmappe usw. AddInInst stellt das Add-In selbst dar. Der custom-Parameter ist ein Array, in dem Sie Daten optional an das Add-In übergeben können.
OnConnection initiiert nicht nur diese Variablen, sondern enthält auch Code zum Erstellen eines Befehls für das Add-In im Menü Extras, wenn Sie die entsprechende Option beim Erstellen mit dem Add-In-Assistenten ausgewählt haben.
Andere Add-In-Methoden
Die vier anderen Add-In-Methoden, die mittels des Add-In-Assistenten positioniert werden, sind standardmäßig leer. Um Ereignisse im Zusammenhang mit Add-Ins zu behandeln, können Sie mit den anderen Methoden auf diese reagieren. So können Sie beispielsweise der OnAddInsUpdate-Methode Code hinzufügen, um eine Benachrichtigung an eine andere Prozedur zu senden, wenn ein Add-In geschlossen wird. Sie können OnBeginShutdown aufrufen, um Bereinigungsaufgaben auszuführen, wenn die IDE von Visual Studio heruntergefahren wird.
Wenn Sie beim Erstellen eines Add-Ins die Option "Soll eine Befehlszeilen-Benutzeroberfläche für das Add-In erstellt werden?" auswählen (wodurch im Menü Extras ein Befehl für das Add-In erstellt wird), wird die IDTCommandTarget-Schnittstelle implementiert. Zwei weitere Methoden – die QueryStatus-Methode und die Exec-Methode – werden dem Add-In-Projekt zum Behandeln von Befehlsaufgaben hinzugefügt. Diese Methoden enthalten eine geringe Menge an Code, der das Platzieren des Befehls im Menü Extras und das Reagieren auf Benutzerklicks unterstützt. QueryStatus setzt das Add-In über die Verfügbarkeit des Befehls in Kenntnis. Die Exec-Methode wird aufgerufen, wenn ein Benutzer im Menü Extras auf den Befehl des Add-Ins klickt, d. h., Sie sollten hier Code hinzufügen, wenn auf dieses Ereignis eine Reaktion erfolgen soll.