Architektur von Anpassungen auf Dokumentebene

Visual Studio 2013 enthält Projekte zum Erstellen von Anpassungen auf Dokumentebene für Microsoft Office Word und Microsoft Office Excel. In diesem Thema werden die folgenden Aspekte von Anpassungen auf Dokumentebene beschrieben:

Grundlegendes zu Anpassungen

Wenn Sie zum Erstellen einer Anpassung auf Dokumentebene die Office-Entwicklertools in Visual Studio verwenden, erstellen Sie eine verwaltete Codeassembly, die einem bestimmten Dokument zugeordnet ist. Ein Dokument oder eine Arbeitsmappe mit einer zugeordneten Assembly besitzt Erweiterungen durch verwalteten Code. Weitere Informationen finden Sie unter Entwerfen und Erstellen von Office-Lösungen.

Wenn ein Benutzer das Dokument öffnet, wird die Assembly von der Microsoft Office-Anwendung geladen. Nach dem Laden der Assembly kann die Anpassung auf Ereignisse reagieren, während das Dokument geöffnet ist. Die Anpassung kann auch das Objektmodell aufrufen, um die Anwendung zu automatisieren und zu erweitern, während das Dokument geöffnet ist, und sie 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 ein Benutzer mehrere Anpassungen auf Dokumentebene gleichzeitig öffnet, wird jede Assembly in eine andere Anwendungsdomäne geladen. So kann eine Projektmappe, die sich falsch verhält, nicht bewirken, dass andere Projektmappen fehlschlagen. Anpassungen auf Dokumentebene sind für einzelne Dokumente in einer einzelnen Anwendungsdomäne konzipiert. Sie sind nicht für die Kommunikation zwischen verschiedenen Dokumenten konzipiert. Weitere Informationen zu Anwendung Standard s finden Sie unter Application do Standard s.

Hinweis

Anpassungen auf Dokumentebene, 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 die Anpassung unter Umständen nicht so, wie erwartet.

Entwurfszeit- und Laufzeiterfahrungen

Um die Architektur von Anpassungen auf Dokumentebene zu verstehen, ist es hilfreich, wenn Sie die Möglichkeiten beim Entwerfen und beim Ausführen einer Lösung kennen.

Entwurfszeit

Zur Entwurfszeit werden die folgenden Schritte ausgeführt:

  1. Der Entwickler erstellt ein Projekt auf Dokumentebene in Visual Studio. Das Projekt enthält das Dokument und die Assembly, die im Dokument ausgeführt wird. Möglicherweise ist das Dokument bereits vorhanden (von einem Designer erstellt), oder ein neues Dokument kann zusammen mit dem Projekt erstellt werden.

  2. Der Designer (d. h. der Entwickler, der das Projekt erstellt, oder eine andere Person) bestimmt die endgültige Gestaltung des Dokuments für den Endbenutzer.

Laufzeit

Zur Laufzeit werden die folgenden Schritte ausgeführt:

  1. Der Endbenutzer öffnet ein Dokument oder eine Arbeitsmappe, die Erweiterungen durch verwalteten Code besitzt.

  2. Die kompilierte Assembly wird vom Dokument oder der Arbeitsmappe geladen.

  3. Die Assembly reagiert auf Ereignisse, während der Benutzer im Dokument oder in der Arbeitsmappe arbeitet.

Entwickler- und Endbenutzerperspektive im Vergleich

Da der Entwickler hauptsächlich in Visual Studio arbeitet und der Endbenutzer in Word oder Excel arbeitet, gibt es zwei Möglichkeiten, Anpassungen auf Dokumentebene zu verstehen.

Perspektive des Entwicklers Perspektive des Endbenutzers
Mit Visual Studio schreibt der Entwickler Code, auf den Word und Excel zugegriffen werden kann.

Auch wenn der Eindruck entsteht, der Entwickler erstelle eine ausführbare Datei, die Word oder Excel ausführt, verläuft der Prozess umgekehrt. Das Dokument ist einer Assembly zugeordnet und enthält einen Zeiger auf diese Assembly. Beim Öffnen des Dokuments sucht Word bzw. Excel die Assembly und führt den Code als Reaktion auf alle behandelten Ereignisse aus.
Die Benutzer der Projektmappe öffnen einfach das Dokument bzw. die Arbeitsmappe (oder erstellen ein neues Dokument aus einer Vorlage) wie bei einer normalen Microsoft Office-Datei.

Die Assembly stellt Anpassungen im Dokument bzw. in der Arbeitsmappe bereit, z. B. das automatische Füllen mit aktuellen Daten oder das Anzeigen eines Dialogfelds zum Abfragen von Informationen.

Unterstützte Dokumentformate für Anpassungen auf Dokumentebene

Wenn Sie ein Anpassungsprojekt erstellen, können Sie das Format des Dokuments auswählen, das Sie im Projekt verwenden möchten. Weitere Informationen finden Sie unter How to: Create Office projects in Visual Studio.

In der folgenden Tabelle werden die Dokumentformate aufgelistet, die Sie in Anpassungen auf Dokumentebene für Excel und Word verwenden können.

Excel Word
Excel-Arbeitsmappe (XLSX)

Excel-Arbeitsmappe mit Makros (XLSM)

Excel-Binärarbeitsmappe (XLSB)

Excel 97-2003-Arbeitsmappe (XLS)

Excel-Vorlage (XLTX)

Excel-Vorlage mit Makros (XLTM)

Excel 97-2003-Vorlage (XLT)
Word-Dokument (DOCX)

Word-Dokument mit Makros (DOCM)

Word 97-2003-Dokument (DOC)

Word-Vorlage (DOTX)

Word-Vorlage mit Makros (DOTM)

Word 97-2003-Vorlage (DOT)

Sie sollten Erweiterungen durch verwalteten Code nur für Dokumente in den unterstützten Formaten entwerfen. Andernfalls können bestimmte Ereignisse möglicherweise nicht ausgelöst werden, wenn das Dokument in der Anwendung geöffnet wird. Das Ereignis wird z. B. nicht ausgelöst, wenn Sie Verwaltete Codeerweiterungen mit Arbeitsmappen verwenden, Open die im Excel-XML-Tabellenkalkulationsformat oder auf der Webseite (HTM) gespeichert sind. html) Format.

Unterstützung für Word-Dokumente mit XML-Dateinamenerweiterungen

Mit Projektvorlagen auf Dokumentebene können Sie keine Projekte erstellen, die auf den folgenden Dateiformaten basieren:

  • Word-XML-Dokument (*xml).

  • Word 2003-XML-Dokument (*xml).

    Wenn Sie möchten, dass die Endbenutzer Anpassungen in diesen Dateiformaten verwenden, erstellen Sie eine Anpassung, die eines der unterstützten Dateiformate aus der Tabelle oben verwendet, und stellen Sie diese Anpassung bereit. Nach der Installation der Anpassung können Endbenutzer das Dokument im Word XML-Dokumentformat (*xml) oder im Word 2003 XML-Dokumentformat (*xml) speichern, und die Anpassung funktioniert weiterhin wie erwartet.

Komponenten von Anpassungen

Die Hauptkomponenten einer Anpassung sind das Dokument und die Assembly. Es gibt zudem mehrere andere Komponenten, die beeinflussen, wie Microsoft Office-Anwendungen Anpassungen finden und laden.

Bereitstellungsmanifest und Anwendungsmanifest

Anwendungen verwenden Bereitstellungs- und Anwendungsmanifeste, um die aktuelle Version der Anpassungsassembly zu identifizieren und zu laden. Das Bereitstellungsmanifest verweist auf das aktuelle Anwendungsmanifest. Das Anwendungsmanifest verweist auf die Anpassungsassembly und gibt die Einstiegspunktklasse (bzw. Einstiegspunktklassen) 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 Anpassungen auf Dokumentebene 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 Visual Studio-Tools für Die Office-Laufzeit enthält nicht verwaltete Komponenten, die die Anpassungsassembly laden, sowie eine Reihe von verwalteten Assemblys. Die verwalteten Assemblys enthalten das Objektmodell, das Ihr Anpassungscode verwendet, um die Hostanwendung zu automatisieren und zu erweitern.

Weitere Informationen finden Sie unter Visual Studio-Tools für Office-Laufzeitübersicht.

Verwenden von Anpassungen mit Microsoft Office-Anwendungen

Wenn ein Benutzer ein Dokument öffnet, das Teil einer Anpassung für Microsoft Office ist, verwendet die Anwendung das mit dem Dokument verknüpfte Bereitstellungsmanifest, um die aktuelle Version der Anpassungsassembly zu finden und zu laden. Der Speicherort des Bereitstellungsmanifests wird in einer benutzerdefinierten Dokumenteigenschaft namens "AssemblyLocation" gespeichert. Die Zeichenfolge, die diesen Speicherort angibt, wird in die Eigenschaft eingefügt, wenn Sie die Projektmappe erstellen.

Das Bereitstellungsmanifest verweist auf das Anwendungsmanifest, das wiederum auf die aktuelle Assembly verweist. Weitere Informationen finden Sie unter Anwendungs- und Bereitstellungsmanifesten in Office-Lösungen.

In der folgenden Abbildung wird die grundlegende Architektur einer Anpassung auf Dokumentebene dargestellt.

2007 Office customization architecture

Hinweis

In Office-Lösungen, die auf .NET Framework 4 abzielen, rufen Lösungen das Objektmodell der Hostanwendung mithilfe der primären Interopassembly (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 ein Dokument öffnet, das Teil einer Microsoft Office-Projektmappe ist:

  1. Die Microsoft Office-Anwendung prüft anhand der benutzerdefinierten Dokumenteigenschaften, ob dem Dokument Erweiterungen durch verwalteten Code zugeordnet sind. Weitere Informationen finden Sie unter Übersicht über benutzerdefinierte Dokumenteigenschaften.

  2. Wenn verwaltete Codeerweiterungen vorhanden sind, lädt die Anwendung VSTOEE.dll, wodurch VSTOLoader.dll geladen wird. Hierbei handelt es sich um nicht verwaltete DLLs, bei denen es sich um die Ladekomponenten für die Visual Studio 2010 Tools for Office-Laufzeit handelt. 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. Wenn das Dokument von einem anderen Speicherort als dem lokalen Computer geöffnet wird, überprüft die Visual Studio-Tools für Office-Laufzeit, ob sich der Speicherort des Dokuments in der Liste "Vertrauenswürdige Speicherorte" im Trust Center Einstellungen für diese bestimmte Office-App lizenzierung befindet. Wenn der Speicherort des Dokuments kein vertrauenswürdiger Speicherort ist, ist die Anpassung nicht vertrauenswürdig, und der Ladevorgang wird hier beendet.

  5. Die Visual Studio-Tools für Office-Laufzeit installiert die Lösung, wenn sie noch nicht installiert wurde, lädt die neuesten Anwendungs- und Bereitstellungsmanifeste herunter und führt eine Reihe von Sicherheitsprüfungen durch. Weitere Informationen finden Sie unter Secure Office solutions.

  6. Wenn die Anpassung für die Ausführung 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 Anpassungsassembly geladen werden soll.

  8. Die Visual Studio-Tools für Office-Laufzeit lädt die Anpassungsassembly in die Anwendung Standard.

  9. Die Visual Studio-Tools für Office-Laufzeit ruft den Startereignishandler in Der Anpassungsassembly auf. Weitere Informationen finden Sie unter "Ereignisse in Office-Projekten".