Architecture of VSTO Add-ins

VSTO-Add-Ins, die mit den Office Developer Tools in Visual Studio erstellt werden, verfügen über Architekturfunktionen, mit denen die Stabilität und Sicherheit gestärkt werden und die enge Zusammenarbeit mit Microsoft Office ermöglicht wird. In diesem Thema werden die folgenden Aspekte von VSTO-Add-Ins beschrieben:

Grundlegendes zu VSTO-Add-Ins

Wenn Sie die Office-Entwicklertools in Visual Studio zum Erstellen eines VSTO-Add-Ins verwenden, erstellen Sie eine verwaltete Codeassembly, die von einer Microsoft-Office-App lizenzierung geladen wird. Nach dem Laden der Assembly kann das VSTO-Add-In auf Ereignisse reagieren, die in der Anwendung ausgelöst werden (z. B. wenn ein Benutzer auf ein Menüelement klickt). Das VSTO-Add-In kann auch das Objektmodell aufrufen, um die Anwendung zu automatisieren und zu erweitern, und es kann jede der Klassen in .NET Framework verwenden.

Die Assembly verwendet die primäre Interopassembly der Anwendung, um mit den COM-Komponenten der Anwendung zu kommunizieren. Weitere Informationen finden Sie unter Office-primäre Interopassemblys und Übersicht über die Entwicklung von Office-Lösungen (VSTO).

Wenn für eine Anwendung mehrere VSTO-Add-Ins installiert werden, wird jedes VSTO-Add-In in einer anderen Anwendungsdomäne geladen. So kann ein VSTO-Add-In, das sich falsch verhält, nicht bewirken, dass für andere VSTO-Add-Ins Fehler auftreten. Es wird auch sichergestellt, dass beim Schließen der Anwendung alle VSTO-Add-In-Assemblys aus dem Speicher entladen werden. Weitere Informationen zu Anwendung Standard s finden Sie unter Application do Standard s.

Hinweis

VSTO-Add-Ins, die mit den Office Developer Tools in Visual Studio erstellt werden, sollen nur dann verwendet werden, wenn die Microsoft Office-Hostanwendung von einem Endbenutzer gestartet wird. Wird die Anwendung programmgesteuert gestartet (beispielsweise per Automatisierung), verhält sich das VSTO-Add-In unter Umständen nicht wie erwartet.

Komponenten von VSTO-Add-Ins

Die VSTO-Add-In-Assembly ist zwar die Hauptkomponente, aber es gibt noch mehrere andere Komponenten, die eine wichtige Rolle dabei spielen, wie Microsoft Office-Anwendungen VSTO-Add-Ins ermitteln und laden.

Registrierungseinträge

Microsoft Office-Anwendungen ermitteln VSTO-Add-Ins, indem sie nach einem Satz von Registrierungseinträgen suchen. Eine vollständige Liste der von VSTO-Add-Ins verwendeten Registrierungseinträge finden Sie unter Registrierungseinträge für VSTO-Add-Ins.

Wenn Sie die Projektmappe erstellen, erstellt Visual Studio alle erforderlichen Registrierungseinträge auf dem Entwicklungscomputer, damit Sie Ihr VSTO-Add-In debuggen und ausführen können. Weitere Informationen finden Sie unter Erstellen von Office-Lösungen.

Wenn Sie ClickOnce verwenden, um Ihre Lösung bereitzustellen, erstellt das vom Veröffentlichungsprozess generierte Setupprogramm automatisch die Registrierungsschlüssel auf dem Endbenutzercomputer. Weitere Informationen finden Sie unter Bereitstellen einer Office-Lösung mithilfe von ClickOnce.

Bereitstellungsmanifest und Anwendungsmanifest

VSTO-Add-Ins verwenden Bereitstellungs- und Anwendungsmanifeste, um die aktuelle Version der VSTO-Add-In-Assembly zu identifizieren und zu laden. Das Bereitstellungsmanifest verweist auf das aktuelle Anwendungsmanifest. Das Anwendungsmanifest verweist auf die VSTO-Add-In-Assembly und gibt die Einstiegspunktklasse an, die in der Assembly ausgeführt wird. Weitere Informationen finden Sie unter Anwendungs- und Bereitstellungsmanifesten in Office-Lösungen.

Visual Studio Tools for Office Runtime

Um VSTO-Add-Ins auszuführen, die mithilfe der Office-Entwicklertools in Visual Studio erstellt werden, müssen Endbenutzercomputer die Visual Studio-Tools für die Office-Laufzeit installiert haben. Die Laufzeit enthält nicht verwaltete Komponenten und einen Satz verwalteter Assemblys. Die nicht verwalteten Komponenten laden die VSTO-Add-In-Assembly. Die verwalteten Assemblys enthalten das Objektmodell, das Ihr VSTO-Add-In-Code verwendet, um die Hostanwendung zu automatisieren und zu erweitern.

Weitere Informationen finden Sie unter Visual Studio-Tools übersicht über die Office-Laufzeit.

Verwenden von VSTO-Add-Ins mit Microsoft Office-Anwendungen

Wenn ein Benutzer eine Microsoft Office-Anwendung startet, verwendet die Anwendung das Bereitstellungsmanifest und das Anwendungsmanifest, um die aktuelle Version der VSTO-Add-In-Assembly zu suchen und zu laden. Die folgende Abbildung zeigt die grundlegende Architektur dieser VSTO-Add-Ins.

2007 Office add-in architecture

Hinweis

In Office-Lösungen, die auf .NET Framework 4 oder .NET Framework 4.5 abzielen, rufen Lösungen das Objektmodell der Hostanwendung mithilfe von PIA-Typinformationen auf, die in die Lösungsassembly eingebettet sind, anstatt die PIA direkt aufzurufen. Weitere Informationen finden Sie unter Entwerfen und Erstellen von Office-Lösungen.

Ladevorgang

Die folgenden Schritte werden ausgeführt, wenn ein Benutzer eine Anwendung startet:

  1. Die Anwendung überprüft die Registrierung auf Einträge, mit denen VSTO-Add-Ins identifiziert werden, die mit den Office Developer Tools in Visual Studio erstellt wurden.

  2. Wenn die Anwendung diese Registrierungseinträge findet, lädt die Anwendung die Datei „VSTOEE.dll“, mit der wiederum die Datei „VSTOLoader.dll“ geladen wird. Hierbei handelt es sich um nicht verwaltete DLLs, die die Ladeprogrammkomponenten für Visual Studio 2010-Tools für Office-Laufzeit sind. Weitere Informationen finden Sie unter Visual Studio-Tools übersicht über die Office-Laufzeit.

  3. VSTOLoader.dll lädt .NET Framework und startet den verwalteten Teil der Visual Studio-Tools für Office-Laufzeit.

  4. Die Visual Studio-Tools für Office-Laufzeit überprüft auf Manifestupdates und lädt die neuesten Anwendungs- und Bereitstellungsmanifeste herunter.

  5. Die Visual Studio-Tools für Office-Laufzeit führt eine Reihe von Sicherheitsprüfungen durch. Weitere Informationen finden Sie unter Secure Office solutions.

  6. Wenn die Ausführung des VSTO-Add-Ins vertrauenswürdig ist, verwendet die Visual Studio-Tools für Office-Laufzeit das Bereitstellungsmanifest und das Anwendungsmanifest, um nach Assemblyupdates zu suchen. Wenn eine neue Version der Assembly verfügbar ist, lädt die Laufzeit die neue Version der Assembly in den ClickOnce-Cache auf dem Clientcomputer herunter. Weitere Informationen finden Sie unter Bereitstellen einer Office-Lösung.

  7. Die Visual Studio-Tools für Office-Laufzeit erstellt eine neue Anwendung Standard in der die VSTO-Add-In-Assembly geladen werden soll.

  8. Die Visual Studio-Tools für Office-Laufzeit lädt die VSTO-Add-In-Assembly in die Anwendung Standard.

  9. Die Visual Studio-Tools für Office-Laufzeit ruft die RequestComAddInAutomationService Methode in Ihrem VSTO-Add-In auf, wenn Sie sie überschrieben haben.

    Sie können diese Methode optional außer Kraft setzen, um in Ihrem VSTO-Add-In ein Objekt für andere Microsoft Office-Projektmappen verfügbar zu machen. Weitere Informationen finden Sie unter Anrufcode in VSTO-Add-Ins aus anderen Office-Lösungen.

  10. Die Visual Studio-Tools für Office-Laufzeit ruft die RequestService Methode in Ihrem VSTO-Add-In auf, wenn Sie sie überschrieben haben.

    Sie können diese Methode optional außer Kraft setzen, um eine Microsoft Office-Funktion zu erweitern, indem Sie ein Objekt zurückgeben, mit dem eine Erweiterbarkeitsschnittstelle implementiert wird. Weitere Informationen finden Sie unter Anpassen von UI-Features mithilfe von Erweiterbarkeitsschnittstellen.

    Hinweis

    Die Visual Studio-Tools für Die Office-Laufzeit führt separate Aufrufe der RequestService Methode für jede Erweiterbarkeitsschnittstelle durch, die von der Hostanwendung unterstützt wird. Obwohl der erste Aufruf der RequestService -Methode normalerweise vor dem Aufruf der ThisAddIn_Startup -Methode erfolgt, sollten in Ihrem VSTO-Add-In keine Annahmen dazu getroffen werden, wann oder wie oft die RequestService -Methode aufgerufen wird.

  11. Die Visual Studio-Tools für Office-Laufzeit ruft die ThisAddIn_Startup Methode in Ihrem VSTO-Add-In auf. Diese Methode ist der Standardereignishandler für das Startup -Ereignis. Weitere Informationen finden Sie unter "Ereignisse in Office-Projekten".