Architektur von Add-Ins auf Anwendungsebene

Mit den Office-Entwicklungstools in Visual Studio erstellte Add-Ins besitzen Architekturfeatures, die Stabilität und Sicherheit hervorheben und ein enges Zusammenarbeiten der Add-Ins mit Microsoft Office ermöglichen. In diesem Thema werden die folgenden Aspekte von Add-Ins beschrieben:

  • Add-Ins

  • Komponenten von Add-Ins

  • Verwenden von Add-Ins mit Microsoft Office-Anwendungen

Betrifft: Die Informationen in diesem Thema betreffen Projekte auf Anwendungsebene für Microsoft Office 2010 und 2007 Microsoft Office System. Weitere Informationen finden Sie unter Verfügbare Funktionen nach Office-Anwendung und Projekttyp.

Allgemeine Informationen zum Erstellen von Add-Ins finden Sie unter Übersicht über die Entwicklung von Office-Projektmappen und Erste Schritte beim Programmieren von Add-Ins auf Anwendungsebene.

Add-Ins

Beim Erstellen eines Add-Ins mit den Office-Entwicklertools in Visual Studio erstellen Sie eine verwaltete Codeassembly, die von einer Microsoft Office-Anwendung geladen wird. Nach dem Laden der Assembly, kann das Add-In auf Ereignisse reagieren, die in der Anwendung ausgelöst werden (z. B. wenn ein Benutzer auf ein Menüelement klickt). Das Add-In kann auch einen Aufruf an das Objektmodell ausführen, um die Anwendung zu automatisieren und zu erweitern, und das Add-In 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 Primäre Interopassemblys in Office und Übersicht über die Entwicklung von Office-Projektmappen.

Beim Installieren mehrerer Add-Ins für eine Anwendung wird jedes Add-In in eine andere Anwendungsdomäne geladen. So kann kein Add-In, das sich falsch verhält, bewirken, dass andere Add-Ins fehlschlagen. Damit wird auch sichergestellt, dass beim Schließen der Anwendung alle Add-In-Assemblys aus dem Speicher entladen werden. Weitere Informationen zu Anwendungsdomänen finden Sie unter Anwendungsdomänen.

Tipp

Add-Ins, die mit den Office-Entwicklertools 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 durch Automatisierung), verhält sich das Add-In unter Umständen nicht so, wie erwartet.

Komponenten von Add-Ins

Obwohl es sich bei der Add-In-Assembly um die Hauptkomponente handelt, gibt es zudem mehrere andere Komponenten, die beeinflussen, wie Microsoft Office-Anwendungen Add-Ins finden und laden.

Registrierungseinträge

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

Beim Erstellen der Lösung erstellt Visual Studio alle erforderlichen Registrierungseinträge auf dem Entwicklungscomputer, sodass Sie das Add-In debuggen und ausführen können. Weitere Informationen finden Sie unter Übersicht über das Erstellen von Office-Projektmappen.

Beim Bereitstellen der Lösung mit ClickOnce erstellt das vom Veröffentlichungsvorgang generierte Setupprogramm automatisch die Registrierungsschlüssel auf dem Endbenutzercomputer. Weitere Informationen finden Sie unter Veröffentlichen von Office-Lösungen.

Bereitstellungsmanifest und Anwendungsmanifest

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

Visual Studio Tools for Office Runtime

Wenn mit den Office Developer Tools in Visual Studio erstellte Add-Ins ausgeführt werden sollen, muss die Visual Studio Tools for Office-Laufzeit auf Endbenutzercomputern installiert sein. Die Laufzeit enthält nicht verwaltete Komponenten und einen Satz verwalteter Assemblys. Die nicht verwalteten Komponenten laden die Add-In-Assembly. Die verwalteten Assemblys enthalten das Objektmodell, das der Add-In-Code verwendet, um die Hostanwendung zu automatisieren und zu erweitern.

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

Verwenden von 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 Add-In-Assembly zu finden und zu laden. In der folgenden Abbildung wird die grundlegende Architektur dieser Add-Ins dargestellt.

Add-In-Architektur

Office 2007-Add-In-Architektur

Tipp

In Office-Lösungen, die auf .NET Framework 4 abzielen, rufen Lösungen das Objektmodell der Hostanwendung mithilfe von in die Lösungsassembly eingebetteten PIA-Typinformationen auf, statt 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, die Add-Ins identifizieren, die mit den Office-Entwicklertools in Visual Studio erstellt wurden.

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

  3. VSTOLoader.dll lädt .NET Framework und startet den verwalteten Teil von Visual Studio Tools for Office-Laufzeit.

  4. Visual Studio Tools for Office-Laufzeit überprüft die Manifestupdates und lädt die aktuellsten Anwendungs- und Bereitstellungsmanifeste herunter.

  5. Visual Studio Tools for Office-Laufzeit führt eine Reihe von Sicherheitsüberprüfungen aus. Weitere Informationen finden Sie unter Sichern von Office-Projektmappen.

  6. Wenn das Add-In vertrauenswürdig ist und ausgeführt werden darf, verwendet Visual Studio Tools for Office-Laufzeit das Bereitstellungsmanifest und das Anwendungsmanifest, um nach Assemblyaktualisierungen 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. Weitere Informationen finden Sie unter Bereitstellen von Office-Projektmappen.

  7. Visual Studio Tools for Office-Laufzeit erstellt eine neue Anwendungsdomäne, in der die Add-In-Assembly geladen wird.

  8. Die Add-In-Assembly wird von Visual Studio Tools for Office-Laufzeit in die Anwendungsdomäne geladen.

  9. Visual Studio Tools for Office-Laufzeit ruft die RequestComAddInAutomationService-Methode im Add-In auf, wenn Sie sie überschrieben haben.

    Sie können diese Methode wahlweise überschreiben, um ein Objekt im Add-In für andere Microsoft Office-Projektmappen verfügbar zu machen. Weitere Informationen finden Sie unter Aufrufen von Code in Add-Ins auf Anwendungsebene von anderen Office-Projektmappen.

  10. Visual Studio Tools for Office-Laufzeit ruft die RequestService-Methode im Add-In auf, wenn Sie sie überschrieben haben.

    Sie können diese Methode wahlweise überschreiben, um ein Microsoft Office-Feature zu erweitern, indem Sie ein Objekt zurückgeben, das eine Erweiterbarkeitsschnittstelle implementiert. Weitere Informationen finden Sie unter Anpassen von Features der Benutzeroberfläche mithilfe von Erweiterungsschnittstellen.

    Tipp

    Visual Studio Tools for Office-Laufzeit sendet für jede Erweiterbarkeitsschnittstelle, die von der Hostanwendung unterstützt wird, separate Aufrufe an die RequestService-Methode. Obwohl der erste Aufruf der RequestService-Methode in der Regel vor dem Aufruf der ThisAddIn_Startup-Methode ausgeführt wird, sollte das Add-In keine Annahmen darüber anstellen, wann oder wie oft die RequestService-Methode aufgerufen wird.

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

Siehe auch

Konzepte

Architektur von Anpassungen auf Dokumentebene

Übersicht über die Visual Studio Tools for Office-Laufzeit

Weitere Ressourcen

Architektur von Office-Projektmappen in Visual Studio

Programmieren von Add-Ins auf Anwendungsebene

Entwickeln von Office-Projektmappen

Sichern von Office-Projektmappen

Bereitstellen von Office-Projektmappen