Architektur von Anpassungen auf Dokumentebene

Aktualisiert: November 2007

Betrifft

Die Informationen in diesem Thema gelten nur für die angegebenen Projekte und Versionen von Visual Studio Tools for Office von Microsoft Office.

Projekttyp

  • Projekte auf Dokumentebene

Microsoft Office-Version

  • 2007 Microsoft Office System

  • Microsoft Office 2003

Weitere Informationen hierzu finden Sie unter Verfügbare Features nach Anwendung und Projekttyp.

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

  • Anpassungen

  • Komponenten von Anpassungen

  • Wie Anpassungen mit 2007 Microsoft Office System verwendet werden

  • Wie Anpassungen mit Microsoft Office 2003 verwendet werden

Allgemeine Informationen zur Verwendung von Visual Studio Tools for Office-Anpassungen finden Sie unter Übersicht über die Entwicklung von Office-Projektmappen, unter Erste Schritte: Programmieren von Anpassungen auf Dokumentebene für Word und unter Erste Schritte beim Programmieren von Anpassungen auf Dokumentebene für Excel.

Anpassungen

Wenn Sie mit Visual Studio Tools for Office eine Anpassung erstellen, erstellen Sie eine Assembly mit verwaltetem Code, die einem spezifischen Dokument zugeordnet ist. Ein Dokument oder eine Arbeitsmappe mit einer zugeordneten Assembly besitzt verwaltete Codeerweiterungen. Weitere Informationen hierzu finden Sie unter Übersicht über Assemblys in Office-Projektmappen.

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 einen Aufruf an das Objektmodell ausführen, um die Anwendung zu automatisieren und zu erweitern, während das Dokument geöffnet ist, und die Anpassung 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 unter Übersicht über die Entwicklung von Office-Projektmappen.

Visual Studio Tools for Office lädt jede Assembly in einer anderen Anwendungsdomäne. So kann eine Projektmappe, die sich falsch verhält, nicht bewirken, dass andere Projektmappen fehlschlagen. Dies sorgt dafür, dass beim Schließen des Dokuments der gesamte Code beendet wird und die Assemblys aus dem Speicher entladen werden. 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 Anwendungsdomänen finden Sie unter Übersicht über Anwendungsdomänen.

Hinweis:

Anpassungen auf Dokumentebene, die mit Visual Studio Tools for Office erstellt werden, sollen nur dann verwendet werden, wenn die Anwendung 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.

Möglichkeiten zur Entwurfszeit und Laufzeit

Um die Architektur von Visual Studio Tools for Office-Projektmappen zu verstehen, ist es hilfreich, wenn Sie die Möglichkeiten beim Entwerfen und beim Ausführen einer Projektmappe 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. Das Dokument kann bereits vorhanden sein (z. B. von einem Designer erstellt), oder es kann 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 verwaltete Codeerweiterungen 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.

Die Perspektive des Entwicklers und des Endbenutzers im Vergleich

Für Anpassungen auf Dokumentebene gibt es zwei verschiedene Erklärungsansätze, da Entwickler überwiegend Visual Studio verwenden, während Endbenutzer mit Word oder Excel arbeiten.

Perspektive des Entwicklers

Perspektive des Endbenutzers

Der Entwickler erstellt in Visual Studio Code, auf den aus 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 hierzu finden Sie unter Gewusst wie: Erstellen von Visual Studio Tools for Office-Projekte.

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

Excel 2007

Excel 2003

Excel-Arbeitsmappe (.xlsx)

Excel-Arbeitsmappe mit Makros (.xlsm)

Binäre Excel-Arbeitsmappe (.xlsb)

Excel 97-2003-Arbeitsmappe (.xls)

Excel-Vorlage (.xltx)

Excel-Vorlage mit Makros (.xltm)

Excel 97-2003-Vorlage (.xlt)

Excel-Arbeitsmappe (.xls)

Excel-Vorlage (.xlt)

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

Word 2007

Word 2003

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)

Word-Dokument (.doc)

Word-Vorlage (.dot)

Wenn Sie für eine 2007 Microsoft Office-Anpassung ein in Microsoft Office 2003 erstelltes Dokument als Grundlage verwenden, wird das Dateiformat des Dokuments von Visual Studio Tools for Office nicht geändert.

Sie sollten Erweiterungen für verwalteten Code nur für Dokumente in den unterstützen Formaten entwerfen. Andernfalls können bestimmte Ereignisse möglicherweise nicht ausgelöst werden, wenn das Dokument in der Anwendung geöffnet wird. Das Open-Ereignis wird beispielsweise nicht ausgelöst, wenn Sie verwaltete Codeerweiterungen in Arbeitsmappen verwenden, die im XML-Arbeitsblattformat für Excel oder im Webseitenformat (HTM, HTML) gespeichert wurden.

Unterstützung für Word-Dokumente mit .xml-Dateinamenerweiterungen

Mit Projektvorlagen auf Dokumentebene für Word 2003 und Word 2007 können Sie keine Projekte erstellen, die auf den folgenden Dateiformaten basieren:

  • XML-Dokument für Word (*xml)

  • XML-Dokument für Word 2003 (*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 für Word 2007 im XML-Dokumentformat für Word (*xml) oder für Word 2003 im XML-Dokumentformat für Word 2003 (*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 Bereitstellungsmanifeste in Office-Projektmappen.

Visual Studio Tools for Office-Laufzeit

Um Anpassungen auszuführen, die mit Visual Studio Tools for Office erstellt wurden, muss auf dem Endbenutzercomputer die Visual Studio Tools for Office-Laufzeit installiert sein. Die Visual Studio Tools for Office-Laufzeit enthält nicht verwaltete Komponenten, die die Anpassungsassembly laden, und einen Satz verwalteter Assemblys. Die verwalteten Assemblys enthalten das Objektmodell, das Ihr Anpassungscode verwendet, um die Hostanwendung zu automatisieren und zu erweitern.

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

Wie Anpassungen mit 2007 Microsoft Office System verwendet werden

Wenn ein Benutzer ein Dokument öffnet, das Teil einer Anpassung für 2007 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 mit dem Namen _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 Bereitstellungsmanifeste in Office-Projektmappen.

In der folgenden Abbildung wird die grundlegende Architektur einer Anpassung für ein 2007 Microsoft Office System-Dokument dargestellt.

Architektur einer Anpassung für 2007 Microsoft Office System

Ladevorgang für Anpassungen in 2007 Microsoft Office System

Die folgenden Schritte werden ausgeführt, wenn ein Benutzer ein Dokument öffnet, das Teil einer 2007 Microsoft Office-Projektmappe ist:

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

  2. Wenn verwaltete Codeerweiterungen vorhanden sind, lädt die Anwendung die Datei VSTOEE.dll, die dann die Datei VSTOLoader.dll lädt. Hierbei handelt es sich um nicht verwaltete DLLs, die die Ladeprogrammkomponenten für Microsoft Visual Studio Tools für Microsoft Office System (Version 3.0-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 der Visual Studio Tools for Office-Laufzeit.

  4. Wenn das Dokument von einem anderen Speicherort als dem lokalen Computer aus geöffnet wird, überprüft die Visual Studio Tools for Office-Laufzeit, ob der Speicherort des Dokuments in der Liste der vertrauenswürdigen Speicherorte in den Einstellungen für das Vertrauensstellungscenter der betreffenden Office-Anwendung aufgeführt wird. 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 for Office-Laufzeit installiert die Projektmappe, wenn sie nicht bereits installiert ist, lädt das aktuelle Anwendungs- und Bereitstellungsmanifest herunter, und führt eine Reihe von Sicherheitsüberprüfungen durch. Weitere Informationen finden Sie unter Sicherheit in Office-Projektmappen (2007 System).

  6. Wenn die Anpassung vertrauenswürdig ist und ausgeführt werden darf, verwendet die 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 hierzu finden Sie unter Bereitstellen von Office-Projektmappen (2007 System).

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

  8. Die Anpassungsassembly wird von der Visual Studio Tools for Office-Laufzeit in die Anwendungsdomäne geladen.

  9. Die Visual Studio Tools for Office-Laufzeit ruft den Startup-Ereignishandler in der Anpassungsassembly auf. Weitere Informationen finden Sie unter Visual Studio Tools for Office-Projektereignisse.

Wie Anpassungen mit Microsoft Office 2003 verwendet werden

Wenn ein Benutzer ein Dokument öffnet, das Teil einer Anpassung für Microsoft Office 2003 ist, verwendet die Anwendung das in dem Dokument eingebettete Anwendungsmanifest, um die aktuelle Version der Anpassungsassembly zu finden und zu laden. Das eingebettete Anwendungsmanifest kann direkt auf die Assembly verweisen. Es kann auch auf ein Bereitstellungsmanifest verweisen, das verwendet wird, um nach Assemblyaktualisierungen zu suchen. Weitere Informationen finden Sie unter Anwendungs- und Bereitstellungsmanifeste in Office-Projektmappen.

Das eingebettete Anwendungsmanifest ist in einem unsichtbaren Steuerelement enthalten, dem so genannten Laufzeitspeicher-Steuerelement. Weitere Informationen finden Sie unter Übersicht über Laufzeitspeicher-Steuerelemente.

In der folgenden Abbildung wird die grundlegende Architektur einer Anpassung für ein Microsoft Office 2003-Dokument dargestellt.

Architektur einer Anpassung für Microsoft Office 2003

Ladevorgang für Anpassungen in Microsoft Office 2003

Die folgenden Schritte werden ausgeführt, wenn ein Benutzer ein Dokument öffnet, das Teil einer Microsoft Office 2003-Projektmappe ist:

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

  2. Wenn verwaltete Codeerweiterungen vorhanden sind, lädt die Anwendung die Datei AddinLoader.dll. Hierbei handelt es sich um eine nicht verwaltete DLL, die die Ladeprogrammkomponente für Laufzeit für Visual Studio 2005 Tools for Office Second Edition ist. Weitere Informationen finden Sie unter Übersicht über die Visual Studio Tools for Office-Laufzeit.

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

  4. Die Visual Studio Tools for Office-Laufzeit erstellt eine Anwendungsdomäne, legt eine Richtlinie für die Anwendungsdomäne fest, die besagt, dass die Arbeitsplatzzone nicht vertrauenswürdig ist, und überprüft, ob es unter den Codezugriffssicherheits-Richtlinien eine Richtlinie für die Anpassungsassembly gibt.

  5. .NET Framework überprüft, ob der von der Assembly vorgelegte Beweis der Richtlinie entspricht. Wenn dies nicht der Fall ist, wird ein Fehler ausgelöst. Andernfalls wird der Prozess fortgesetzt.

  6. Wenn die Anpassung ein Bereitstellungsmanifest verwendet, sucht die Visual Studio Tools for Office-Laufzeit mit diesem Manifest nach Assemblyupdates. Wenn Aktualisierungen erforderlich sind, werden diese nun ausgeführt.

  7. Die Assembly wird von der Visual Studio Tools for Office-Laufzeit in die Anwendungsdomäne geladen.

  8. Die Visual Studio Tools for Office-Laufzeit ruft den Startup-Ereignishandler in der Anpassungsassembly auf. Weitere Informationen finden Sie unter Visual Studio Tools for Office-Projektereignisse.

Siehe auch

Konzepte

Architektur von Add-Ins auf Anwendungsebene

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

Erstellen von Office-Projektmappen in Visual Studio

Übersicht über benutzerdefinierte Dokumenteigenschaften

Datenmodell in Anpassungen auf Dokumentebene

Übersicht über Laufzeitspeicher-Steuerelemente

Weitere Ressourcen

Architektur von Visual Studio Tools for Office-Projektmappen

Sicherheit in Office-Projektmappen