Freigeben über


Bereitstellen einer VSTO-Lösung mithilfe von Windows Installer

Zusammenfassung

Erfahren Sie, wie Sie ein Microsoft Visual Studio-Tools für Office (VSTO)-Add-In oder eine Lösung auf Dokumentebene mithilfe eines Visual Studio-Installer Projekts bereitstellen.

Wouter van Vugt, Code Counsel

Ted Pattison, Ted Pattison Group

Dieser Artikel wurde von Microsoft mit der Berechtigung der ursprünglichen Autoren aktualisiert.

Gilt für: Visual Studio-Tools für Office, Microsoft Office, Microsoft Visual Studio.

Sie können eine VSTO-Lösung entwickeln und die Lösung mithilfe eines Windows Installer-Pakets bereitstellen. Diese Diskussion enthält Schritte zum Bereitstellen eines einfachen Office-Add-Ins.

Bereitstellungsmethoden

ClickOnce kann einfach verwendet werden, um Setups für Ihre Add-Ins und Lösungen zu erstellen. Es können jedoch keine Add-Ins installiert werden, die Administratorrechte erfordern, wie z. B. Add-Ins auf Computerebene.

Add-Ins, die Administratorrechte erfordern, können mithilfe von Windows Installer installiert werden, erfordern jedoch mehr Aufwand zum Erstellen des Setups.

Eine Übersicht über die Bereitstellung einer VSTO-Lösung mithilfe von ClickOnce finden Sie unter Bereitstellen einer Office-Lösung mithilfe von ClickOnce.

Bereitstellen von Office-Lösungen, die auf die VSTO-Runtime abzielen

ClickOnce- und Windows Installer-Pakete müssen bei der Installation einer Office-Lösung dieselben elementaren Aufgaben ausführen.

  1. Installieren Sie erforderliche Komponenten auf dem Benutzercomputer.
  2. Stellen Sie die spezifischen Komponenten für die Lösung bereit.
  3. Für Add-Ins erstellen Sie Registrierungseinträge.
  4. Vertrauen Sie der Lösung, damit sie ausgeführt werden kann.

Erforderliche Komponenten auf dem Bereitstellungszielcomputer

Hier ist die Liste der Software, die auf dem Computer installiert sein muss, um VSTO-Lösungen auszuführen:

  • Microsoft Office 2010 oder höher.
  • Microsoft .NET Framework 4 oder höher.
  • Microsoft Visual Studio 2010-Tools für Office-Laufzeit. Die Runtime stellt eine Umgebung bereit, in der Add-Ins und Lösungen auf Dokumentebene verwaltet werden. Eine Version der Runtime wird mit Microsoft Office ausgeliefert, Sie möchten aber möglicherweise eine bestimmte Version mit Ihrem Add-In weitervertreiben.
  • Die primären Interop-Assemblys für Microsoft Office, wenn Sie keine eingebetteten Interop-Typen verwenden.
  • Alle Dienstprogramm-Assemblys, auf die von Projekten verwiesen wird.

Spezifische Komponenten für die Lösung

Das Installationspaket muss diese Komponenten auf dem Computer des Benutzers installieren:

  • Das Microsoft Office-Dokument, wenn Sie eine Lösung auf Dokumentebene erstellen.
  • Die Anpassungs-Assembly und alle Assemblies, die benötigt werden.
  • Zusätzliche Komponenten wie Konfigurationsdateien.
  • Das Anwendungsmanifest (.manifest)
  • Das Bereitstellungsmanifest (.vsto).

Registrierungseinträge für Add-Ins

Microsoft Office verwendet Registrierungseinträge zum Suchen und Laden von Add-Ins. Diese Registrierungseinträge sollten als Teil des Bereitstellungsprozesses erstellt werden. Weitere Informationen zu diesen Registrierungseinträge finden Sie unter Registrierungseinträge für VSTO Add-Ins.

Outlook-Add-Ins, die benutzerdefinierte Formularbereiche anzeigen, erfordern zusätzliche Registrierungseinträge, mit denen die Formularbereiche identifiziert werden können. Weitere Informationen zu Registrierungseinträgen finden Sie unter Registrierungseinträge für Outlook Formularbereiche.

Lösungen auf Dokumentebene erfordern keine Registrierungseinträge. Stattdessen werden Eigenschaften innerhalb des Dokuments verwendet, um die Anpassung zu suchen. Weitere Informationen zu diesen Eigenschaften finden Sie unter Benutzerdefinierte Dokumenteigenschaften Übersicht.

Vertrauen in die VSTO-Lösung

Damit eine Anpassung ausgeführt werden kann, muss eine Lösung vom Computer als vertrauenswürdig eingestuft werden. Das Add-In kann vertrauenswürdig sein, indem das Manifest mit einem Zertifikat signiert wird, eine Vertrauensstellung mit einer Einschlussliste erstellt oder auf einem vertrauenswürdigen Speicherort auf dem Computer installiert wird.

Weitere Informationen zum Abrufen eines Zertifikats zum Unterzeichnen finden Sie unter ClickOnce-Bereitstellung und Authenticode. Weitere Informationen zum Vertrauen von Lösungen finden Sie unter Vertrauenswürdige Office-Lösungen mithilfe von Einschlusslisten. Sie können einen Einschlusslisteneintrag mit einer benutzerdefinierten Aktion in Ihrer Windows Installer-Datei hinzufügen. Weitere Informationen zum Aktivieren der Einschlussliste finden Sie unter Vorgehensweise: Konfigurieren der Einschlusslistensicherheit.

Wenn keine der beiden Optionen verwendet wird, wird dem Benutzer eine Vertrauensaufforderung angezeigt, damit er entscheiden kann, ob der Lösung vertraut werden soll.

Weitere Informationen zur Sicherheit im Zusammenhang mit Lösungen auf Dokumentebene finden Sie unter Gewähren von Vertrauenswürdigkeit für Dokumente.

Erstellen eines Standardinstallationsprogramms

Die Projektvorlagen für Setup und Bereitstellung sind in der Microsoft Visual Studio Installationsprogramm-Projekte-Erweiterung enthalten, die zum Download verfügbar ist.

Um ein Installationsprogramm für eine Office-Lösung zu erstellen, müssen diese Aufgaben ausgeführt werden:

  • Fügen Sie die Komponenten der Office-Lösung hinzu, die bereitgestellt werden soll.
  • Konfigurieren Sie Registrierungsschlüssel für Add-In auf Anwendungsebene.
  • Konfigurieren Sie erforderliche Komponenten, damit sie auf den Endbenutzer-Computern installiert werden können.
  • Konfigurieren Sie Startbedingungen, um zu überprüfen, ob die erforderlichen Komponenten verfügbar sind. Startbedingungen können verwendet werden, um die Installation zu blockieren, wenn alle erforderlichen Komponenten nicht installiert sind.

Im ersten Schritt wird das Setup-Projekt erstellt.

So erstellen Sie das AddIn Setup-Projekt

  1. Öffnen Sie in das Office AddIn-Projekt, das Sie bereitstellen möchten. In diesem Beispiel verwenden wir ein Excel-Add-In namens „ExcelAddIn“.
  2. Erweitern Sie bei geöffnetem Office-Projekt im Menü Datei Hinzufügen und klicken Sie auf Neues Projekt, um ein neues Projekt hinzuzufügen.
  1. Wählen Sie im Dialogfeld Neues Projekt hinzufügen die Setup–Projekt-Vorlage aus.
  2. Klicken Sie auf Weiter.
  1. Geben Sie im Feld Name OfficeAddInSetup ein.
  1. Klicken Sie auf Erstellen, um das neue Setup-Projekt zu erstellen.

Visual Studio öffnet den Dateisystem-Explorer für das neue Setup-Projekt. Mit dem Dateisystem-Explorer können Sie dem Setup-Projekt Dateien hinzufügen.

Screenshot des Dateisystem-Explorers für das Setup-Projekt

Abbildung 1: Dateisystem-Explorer für das Setup-Projekt

Das Setup-Projekt muss das ExcelAddIn bereitstellen. Sie können das Setup-Projekt für diese Aufgabe konfigurieren, indem Sie die ExcelAddIn-Projektausgabe zum Setup-Projekt hinzufügen.

So fügen Sie die ExcelAddIn-Projektausgabe hinzu

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf OfficeAddInSetup, und klicken Sie dann auf Hinzufügen und dann auf Projektausgabe.

  2. Wählen Sie im Dialogfeld Projektausgabegruppe hinzufügen das ExcelAddIn aus der Projektliste und primäre Ausgabe aus.

  3. Klicken Sie auf OK, um die Projektausgabe zum Setup-Projekt hinzuzufügen.

    Screenshot des Dialogfelds Setup-Projekt Projektausgabegruppe hinzufügen

    Abbildung 2: Dialogfeld Setup-Projekt Projektausgabegruppe hinzufügen

Das Setup-Projekt muss das Bereitstellungsmanifest und das Anwendungsmanifest bereitstellen. Fügen Sie diese beiden Dateien dem Setup-Projekt als eigenständige Dateien aus dem Ausgabeordner des ExcelAddIn-Projekts hinzu.

So fügen Sie Bereitstellungs- und Anwendungsmanifeste hinzu

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf OfficeAddInSetup, und klicken Sie dann auf Hinzufügen und dann auf Datei.

  2. Navigieren Sie im Dialogfeld Dateien hinzufügen zum ExcelAddIn-Ausgabeverzeichnis. Normalerweise ist das Ausgabeverzeichnis der Unterordner bin\release des Projektstammverzeichnisses, abhängig von der gewählten Buildkonfiguration.

  3. Wählen Sie die Dateien ExcelAddIn.vsto und ExcelAddIn.dll.manifest aus und klicken Sie auf Öffnen, um diese beiden Dateien zum Setup-Projekt hinzuzufügen.

    Screenshot der Anwendungs- und Bereitstellungsmanifeste in Projektmappen-Explorer

    Abbildung 3: Anwendungs- und Bereitstellungsmanifeste für das Add-In Projektmappen-Explorer

Das Verweisen auf ExcelAddIn enthält alle Komponenten, die ExcelAddIn erfordert. Diese Komponenten müssen ausgeschlossen und mithilfe von erforderlichen Paketen bereitgestellt werden, damit sie ordnungsgemäß registriert werden können. Außerdem müssen die Software-Lizenzbestimmungen angezeigt und angenommen werden, bevor die Installation beginnt.

So schließen Sie die ExcelAddIn-Projektabhängigkeiten aus

  1. Wählen Sie im Projektmappen-Explorer im OfficeAddInSetup-Knoten alle Abhängigkeitselemente unterhalb des Elements Erkannte Abhängigkeiten aus, mit Ausnahme von Microsoft .NET Framework oder einer Assembly, die mit *.Utilities.dll endet. Die Dienstprogramme-Assemblies sollen zusammen mit Ihrer Anwendung bereitgestellt werden.

  2. Klicken Sie mit der rechten Maustaste auf die Gruppe, und wählen Sie Eigenschaften aus.

  3. Ändern Sie im Eigenschaftenfenster die Exclude-Eigenschaft in True, um die abhängigen Assemblies aus dem Setup-Projekt auszuschließen. Stellen Sie sicher, dass keine Dienstprogramm-Assemblies ausgeschlossen werden.

    Screenshot des Projektmappen-Explorers mit den auszuschließenden Abhängigkeiten

    Abbildung 4: Ausschließen von Abhängigkeiten

Sie können Ihr Windows Installer-Paket so konfigurieren, dass erforderliche Komponenten installiert werden, indem Sie ein Setupprogramm hinzufügen, das auch als Bootstrapper bezeichnet wird. Dieses Setupprogramm kann die erforderlichen Komponenten, einen Prozess namens Bootstrapping, installieren.

Für ExcelAddIn müssen diese Komponenten installiert werden, bevor das Add-In ordnungsgemäß ausgeführt werden kann:

  • Die Version von Microsoft.NET Framework, auf die die Office-Lösung abzielt.
  • Microsoft Visual Studio 2010 Tools für Office Runtime

So konfigurieren Sie die abhängigen Komponenten als erforderliche Komponenten

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt OfficeAddInSetup, und wählen Sie Eigenschaften aus.

  2. Das Dialogfeld OfficeAddInSetup Eigenschaftenseiten wird angezeigt.

  3. Klicken Sie auf die Taste erforderliche Komponenten.

  4. Wählen Sie im Dialogfeld Erforderliche Komponenten die richtige Version von .NET Framework und Microsoft Visual Studio-Tools für Office-Runtime aus.

    Screenshot des Dialogfelds Erforderliche Komponenten

    Abbildung 5: Dialogfeld Erforderliche Komponenten

    Hinweis

    Einige der konfigurierten erforderlichen Pakete in Ihrem Visual Studio-Setup-Projekt sind von der ausgewählten Buildkonfiguration abhängig. Sie müssen die richtigen erforderlichen Komponenten für jede von Ihnen verwendete Buildkonfiguration auswählen.

Microsoft Office sucht Add-Ins mithilfe von Registrierungsschlüsseln. Die Schlüssel in der HKEY_CURRENT_USER-Struktur werden verwendet, um das Add-In für jeden einzelnen Benutzer zu registrieren. Die Schlüssel unter der HKEY_LOCAL_MACHINE-Struktur werden verwendet, um das Add-In für alle Benutzer des Computers zu registrieren. Weitere Informationen zu diesen Registrierungsschlüsseln finden Sie unter Registrierungseinträge für VSTO Add-Ins.

Zur Konfigurierung der Registrierung

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf OfficeAddInSetup.

  2. Erweiterte Ansicht

  3. Klicken Sie auf Registrierung, um das Fenster des Registrierungs-Editors zu öffnen.

  4. Erweitern Sie im Editor Registrierung (OfficeAddInSetup) HKEY_LOCAL_MACHINE und dann "Software".

  5. Löschen Sie den [Hersteller]-Schlüssel unter HKEY_LOCAL_MACHINE\Software.

  6. Erweitern Sie HKEY_CURRENT_USER und dann Software.

  7. Löschen Sie den [Hersteller]-Schlüssel unter HKEY_CURRENT_USER\Software.

  8. Wenn Sie Registrierungsschlüssel für die Add-In-Installation hinzufügen möchten, klicken Sie mit der rechten Maustaste auf den Schlüssel Benutzer-/Computer-Struktur und wählen Sie Neuer Schlüssel aus. Verwenden Sie den Text Software für den Namen des neuen Schlüssels. Klicken Sie mit der rechten Maustaste auf den neu erstellten Softwareschlüssel und erstellen Sie einen neuen Schlüssel mit dem Text Microsoft.

  9. Verwenden Sie einen ähnlichen Prozess, um die gesamte Schlüsselhierarchie zu erstellen, die für die Add-In-Registrierung erforderlich ist:

    User/Machine Hive\Software\Microsoft\Office\Excel\Addins\SampleCompany.ExcelAddIn

    Der Unternehmensname wird häufig als Präfix für den Namen des Add-Ins verwendet, um eindeutig zu sein.

  10. Klicken Sie mit der rechten Maustaste auf den Schlüssel SampleCompany.ExcelAddIn, wählen Sie Neu aus, und klicken Sie auf Zeichenketten-Wert. Verwenden Sie den Text Beschreibung für den Namen.

  11. Verwenden Sie diesen Schritt, um drei weitere Werte hinzuzufügen:

    • FriendlyName vom Typ Zeichenkette
    • LoadBehavior vom Typ DWORD
    • Manifest vom Typ Zeichenkette
  12. Klicken Sie im Registrierungs-Editor mit der rechten Maustaste auf den Wert Beschreibung und klicken Sie auf Eigenschaftenfenster. Geben Sie im Eigenschaftenfenster das Excel Demo-AddIn für den Wert Eigenschaft ein.

  13. Wählen Sie im Registrierungs-Editor den FriendlyName Schlüssel aus. Ändern Sie im Eigenschaftenfenster den Wert Eigenschaft auf Excel Demo AddIn.

  14. Wählen Sie den Schlüssel LoadBehavior im Registrierungs-Editor aus. Ändern Sie im Eigenschaftenfenster den Wert Eigenschaft auf 3. Der Wert 3 für LoadBehavior gibt an, dass das Add-In beim Start der Hostanwendung geladen werden soll. Weitere Informationen zum Ladeverhalten finden Sie unter Registrierungseinträge für VSTO Add-ins.

  15. Wählen Sie den Schlüssel Manifest im Registrierungs-Editor aus. Ändern Sie im Eigenschaftenfenster den Wert Eigenschaft auf file:///[TARGETDIR]ExcelAddIn.vsto|vstolocal

    Screenshot des Registrierungs-Editors

    Abbildung 6: Einrichten von Registrierungsschlüsseln

    Die VSTO-Runtime verwendet diesen Registrierungsschlüssel, um das Bereitstellungsmanifest zu finden. Das [TARGETDIR]-Makro wird durch den Ordner ersetzt, in dem das Add-In installiert ist. Das Makro enthält das nachstehende \ Zeichen, sodass der Dateiname des Bereitstellungsmanifests ExcelAddIn.vsto ohne das Zeichen \ sein sollte. Das vstolocal-Postfix teilt der VSTO-Runtime mit, dass das Add-In von diesem Speicherort anstelle des ClickOnce-Cache geladen werden soll. Wenn Sie dieses Postfix entfernen, wird die Runtime dazu führen, dass die Anpassung in den ClickOnce-Cache kopiert wird.

Warnung

Sie sollten mit dem Registrierungs-Editor in Visual Studio sehr vorsichtig sein. Wenn Sie beispielsweise DeleteAtUninstall versehentlich für den falschen Schlüssel festgelegt haben, können Sie einen aktiven Teil der Registrierung löschen und den Benutzercomputer in einem inkonsistenten oder sogar schlimmeren fehlerhaften Zustand verlassen.

64-Bit-Versionen von Office verwenden die 64-Bit-Registrierungsstruktur, um nach Add-Ins zu suchen. Um Add-Ins unter der 64-Bit-Registrierungsstruktur zu registrieren, muss die Zielplattform des Setup-Projekts nur auf 64-Bit festgelegt werden.

  1. Wählen Sie das Projekt OfficeAddInSetup im Projektmappen-Explorer aus.
  2. Wechseln Sie zum Eigenschaftenfenster und legen Sie TargetPlatform-Eigenschaft auf x64 fest.

Wenn Sie ein Add-In für 32-Bit- und 64-Bit-Versionen von Office installieren, müssen Sie zwei separate MSI-Pakete erstellen. Eines für 32-Bit und eines für 64-Bit.

Screenshot des Eigenschaftenfensters mit der Zielplattform zum Registrieren von Add-Ins mit 64-Bit-Office

Abbildung 7: Zielplattform zum Registrieren von Add-Ins mit 64-Bit-Office

Wenn das MSI-Paket zum Installieren des Add-Ins oder der Lösung verwendet wird, kann es ohne die erforderlichen Komponenten installiert werden. Sie können Startbedingungen in der MSI-Datei verwenden, um die Installation des Add-Ins zu blockieren, wenn die erforderlichen Komponenten nicht installiert sind.

Konfigurieren einer Startbedingung zum Erkennen der VSTO-Runtime

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf OfficeAddInSetup.

  2. Erweiterte Ansicht

  3. Klicken Sie auf Startbedingungen.

  4. Klicken Sie im Editor Startbedingungen(OfficeAddInSetup) mit der rechten Maustaste auf Anforderungen auf dem Zielcomputer, und klicken Sie dann auf Registrierungsstartbedingung hinzufügen. Diese Suchbedingung kann die Registrierung nach einem Schlüssel durchsuchen, den die VSTO-Runtime installiert. Der Wert des Schlüssels ist dann für die verschiedenen Teile des Installationsprogramms über eine benannte Eigenschaft verfügbar. Die Startbedingung verwendet die durch die Suchbedingung definierte Eigenschaft, um nach einem bestimmten Wert zu suchen.

  5. Wählen Sie im Editor Startbedingungen(OfficeAddInSetup) die Suchbedingung Suchen nach RegistryEntry1 aus, klicken Sie mit der rechten Maustaste auf die Bedingung, und wählen Sie Eigenschaftenfenster aus.

  6. Legen Sie im Eigenschaftsfenster diese Eigenschaften fest:

    1. Legen Sie den Wert (Name) auf die Suche nach VSTO 2010 Runtime fest.
    2. Ändern Sie den Wert der Eigenschaft in VSTORUNTIMEREDIST.
    3. Legen Sie den Wert von RegKey auf SOFTWARE\Microsoft\VSTO Runtime Setup\v4R fest
    4. Lassen Sie die Root-Eigenschaft auf vsdrrHKLM festgelegt.
    5. Ändern Sie den Wert Eigenschaft auf Version.
  7. Wählen Sie im Editor Startbedingungen(OfficeAddInSetup) die Startbedingung Condition1 aus, klicken Sie mit der rechten Maustaste auf die Bedingung, und wählen Sie Eigenschaftenfenster aus.

  8. Legen Sie im Eigenschaftsfenster diese Eigenschaften fest:

    1. Legen Sie den (Namen) fest, um die Verfügbarkeit der VSTO 2010-Runtime zu überprüfen.

    2. Ändern des Werts der Bedingung in VSTORUNTIMEREDIST>="10.0.30319"

    3. Lassen Sie die InstallURL-Eigenschaft leer.

    4. Legen Sie die Nachricht auf Visual Studio 2010-Tools für Office-Runtime ist nicht installiert. Führen Sie Setup.exe aus, um das Add-In zu installieren fest.

      Screenshot des Eigenschaftenfensters für die Startbedingung Runtime Verfügbarkeit überprüfen

      Abbildung 8: Eigenschaftenfenster für Startbedingung Runtime Verfügbarkeit überprüfen

Die oben genannte Startbedingung überprüft explizit, ob die VSTO-Runtime vorhanden ist, wenn sie vom Bootstrapper-Paket installiert wird.

Konfigurieren einer Startbedingung zum Erkennen der von Office installierten VSTO-Runtime

  1. Klicken Sie im Editor Startbedingungen(OfficeAddInSetup) mit der rechten Maustaste auf Zielcomputer suchen, und klicken Sie dann auf Registrierungssuche hinzufügen.

  2. Wählen Sie die Suchbedingung Suchen nach RegistryEntry1 aus, klicken Sie mit der rechten Maustaste auf die Bedingung, und wählen Sie Eigenschaftenfenster aus.

  3. Legen Sie im Eigenschaftsfenster diese Eigenschaften fest:

    1. Legen Sie den Wert (Name) auf die Suche nach Office VSTO Runtime fest.
    2. Ändern Sie den Wert der Eigenschaft in OfficeRuntime.
    3. Legen Sie den Wert von RegKey auf SOFTWARE\Microsoft\VSTO Runtime Setup\v4 fest
    4. Lassen Sie die Root-Eigenschaft auf vsdrrHKLM festgelegt.
    5. Ändern Sie den Wert Eigenschaft auf Version.
  4. Wählen Sie im Editor Startbedingungen(OfficeAddInSetup) die zuvor definierte Startbedingung für die VSTO 2010-Runtime Verfügbarkeit aus, klicken Sie mit der rechten Maustaste auf die Bedingung, und wählen Sie Eigenschaftenfenster aus.

  5. Ändern Sie den Wert der Eigenschaft Bedingung auf VSTORUNTIMEREDIST >="10.0.30319" OR OFFICERUNTIME>="10.0.21022". Die Versionsnummern unterscheiden sich möglicherweise je nach den von Ihrem Add-In benötigten Versionen der Runtime.

    Screenshot des Eigenschaftenfensters für die Startbedingung

    Abbildung 9: Eigenschaftenfenster für Startbedingung Runtime Verfügbarkeit überprüfen durch Redist oder Office

Wenn ein Add-In auf .NET Framework 4 oder höher ausgerichtet ist, können die Typen innerhalb der primären Interop-Assemblies (PIA), auf die verwiesen wird, in die VSTO-Assembly eingebettet werden.

Führen Sie die folgenden Schritte aus, um zu überprüfen, ob die Interop-Typen in Ihr Add-In eingebettet werden:

  1. Erweitern Sie im Projektmappen-Explorer den Knoten Referenzen
  2. Wählen Sie eine der PIA-Referenzen aus, z. B. Office.
  3. Zeigen Sie die Eigenschaftenfenster an, indem Sie F4 drücken oder im Kontextmenü Assemblies die Option Eigenschaften auswählen.
  4. Überprüfen Sie den Wert der Eigenschaft Eingebettete Interop Typen.

Wenn der Wert auf True festgelegt ist, werden die Typen eingebettet, und Sie können zum Abschnitt Erstellen des Setup-Projekts springen.

Weitere Informationen finden Sie unter Typäquivalenz und eingebettete Interop-Typen

So konfigurieren Sie Startbedingungen, um dies für Office-PIAs zu erkennen

  1. Klicken Sie im Editor Startbedingungen(OfficeAddInSetup) mit der rechten Maustaste auf Anforderungen auf dem Zielcomputer, und dann klicken Sie Startbedingung Windows Installer hinzufügen. Diese Startbedingung sucht nach einer Office-PIA, indem sie nach der spezifischen Komponenten-ID sucht.

  2. Klicken Sie mit der rechten Maustaste auf Nach Component1 suchen, und klicken Sie auf Eigenschaftenfenster, um die Eigenschaften der Startbedingung anzuzeigen.

  3. Legen Sie im Eigenschaftsfenster diese Eigenschaften fest:

    1. Ändern des Werts der Eigenschaft (Name) auf Suchen nach Office Shared PIA
    2. Ändern Sie den Wert der ComponentID auf in Komponenten-ID für die verwendete Office-Komponente. Die Liste der Komponenten-IDs finden Sie in der folgenden Tabelle, z. B. {64E2917E-AA13-4CA4-BFFE-EA6EDA3AFCB4}.
    3. Ändern Sie den Wert der Eigenschaft Eigenschaft auf HASSHAREDPIA.
  4. Wählen Sie im Editor Startbedingungen(OfficeAddInSetup) die Startbedingung Condition1 aus, klicken Sie auf Eigenschaftenfenster, um die Eigenschaften der Startbedingung anzuzeigen.

  5. Ändern Sie diese Eigenschaften von Condition1:

    1. Ändern Sie den (Namen) auf Verfügbarkeit der freigegebenen Office-PIA überprüfen.
    2. Ändern Sie die Bedingung in HASSHAREDPIA.
    3. Lassen Sie InstallUrl leer.
    4. Die Nachricht in Eine erforderliche Komponente für die Interaktion mit Excel ist nicht verfügbar. Führen Sie setup.exe aus ändern.

    Screenshot des Eigenschaftenfensters für die Startbedingung Office Shared PIA überprüfen

    Abbildung 10: Eigenschaftenfenster für die Startbedingung Office Shared PIA überprüfen

Komponenten-IDs der primären Interop-Assemblies für Microsoft Office

Primäre Interop-Assembly Office 2010 Office 2013 Office 2013 (64-bit) Office 2016 Office 2016 (64-bit)
Excel {EA7564AC-C67D-4868-BE5C-26E4FC2223FF} {C8A65ABE-3270-4FD7-B854-50C8082C8F39} {E3BD1151-B9CA-4D45-A77E-51A6E0ED322A} {C845E028-E091-442E-8202-21F596C559A0} {C4ACE6DB-AA99-401F-8BE6-8784BD09F003}
InfoPath {4153F732-D670-4E44-8AB7-500F2B576BDA} {0F825A16-25B2-4771-A497-FC8AF3B355D8} {C5BBD36E-B320-47EF-A512-556B99CB7E41} - -
Outlook {1D844339-3DAE-413E-BC13-62D6A52816B2} {F9F828D5-9F0B-46F9-9E3E-9C59F3C5E136} {7824A03F-28CC-4371-BC54-93D15EFC1E7F} {2C6C511D-4542-4E0C-95D0-05D4406032F2} {7C6D92EF-7B45-46E5-8670-819663220E4E}
PowerPoint {EECBA6B8-3A62-44AD-99EB-8666265466F9} {813139AD-6DAB-4DDD-8C6D-0CA30D073B41} {05758318-BCFD-4288-AD8D-81185841C235} {9E73CEA4-29D0-4D16-8FB9-5AB17387C960} {E0A76492-0FD5-4EC2-8570-AE1BAA61DC88}
Visio {3EA123B5-6316-452E-9D51-A489E06E2347} {C1713368-12A8-41F1-ACA1-934B01AD6EEB} {2CC0B221-22D2-4C15-A9FB-DE818E51AF75} {A4C55BC1-B94C-4058-B15C-B9D4AE540AD1} {2D4540EC-2C88-4C28-AE88-2614B5460648}
Word {8B74A499-37F8-4DEA-B5A0-D72FC501CEFA} {9FE736B7-B1EE-410C-8D07-082891C3DAC8} {13C07AF5-B206-4A48-BB5B-B8022333E3CA} {30CAC893-3CA4-494C-A5E9-A99141352216} {DC5CCACD-A7AC-4FD3-9F70-9454B5DE5161}
Microsoft Forms 2.0 {B2279272-3FD2-434D-B94E-E4E0F8561AC4} {B2279272-3FD2-434D-B94E-E4E0F8561AC4} {A5A30117-2D2A-4C5C-B3C8-8897AC32C2AC} - -
Microsoft Graph {011B9112-EBB1-4A6C-86CB-C2FDC9EA7B0E} {52DA4B37-B8EB-4B7F-89C1-824654CE4C70} {24706F33-F0CE-4EB4-BC91-9E935394F510} - -
Smarttag {7102C98C-EF47-4F04-A227-FE33650BF954} {487A7921-EB3A-4262-BB5B-A5736B732486} {74EFC1F9-747D-4867-B951-EFCF29F51AF7} - -
Office Shared {64E2917E-AA13-4CA4-BFFE-EA6EDA3AFCB4} {6A174BDB-0049-4D1C-86EF-3114CB0C4C4E} {76601EBB-44A7-49EE-8DE3-7B7B9D7EBB05} {68477CB0-662A-48FB-AF2E-9573C92869F7} {625F5772-C1B3-497E-8ABE-7254EDB00506}
Projekt {957A4EC0-E67B-4E86-A383-6AF7270B216A} {1C50E422-24FA-44A9-A120-E88280C8C341} {706D7F44-8231-489D-9B25-3025ADE9F114} {0B6EDA1D-4A15-4F88-8B20-EA6528978E4E} {107BCD9A-F1DC-4004-A444-33706FC10058}

Screenshot der endgültigen Startbedingungen

Abbildungen 11: Endgültige Startbedingungen

Sie können die Startbedingungen für die ExcelAddIn-Installation weiter verfeinern. Es kann beispielsweise hilfreich sein, zu überprüfen, ob die tatsächliche Ziel Office-App installiert ist.

So erstellen Sie das Setup-Projekt

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das OfficeAddInSetup-Projekt, und klicken Sie dann auf Build.
  2. Navigieren Sie mit Windows Explorer abhängig von der ausgewählten Buildkonfiguration zum Ausgabeverzeichnis des OfficeAddInSetup-Projekts und wechseln Sie zum Ordner Freigabe oder Debug. Kopieren Sie alle Dateien aus dem Ordner an einen Speicherort, auf den Benutzer zugreifen können.

So testen Sie das ExcelAddIn-Setup

  1. Navigieren Sie zu dem Speicherort, an den Sie OfficeAddInSetup kopiert haben.
  2. Doppelklicken Sie auf die Datei setup.exe, um das OfficeAddInSetup-Add-In zu installieren. Akzeptieren Sie alle angezeigten Software-Lizenzbestimmungen, und schließen Sie den Setup-Assistenten ab, um das Add-In auf dem Benutzercomputer zu installieren.

Die Excel Office-Lösung sollte den während des Setups angegebenen Speicherort installieren und ausführen.

Zusätzliche Anforderungen für Lösungen auf Dokumentebene

Für die Bereitstellung von Lösungen auf Dokumentebene sind einige verschiedene Konfigurationsschritte im Windows Installer-Setup-Projekt erforderlich.

Hier ist eine Liste der grundlegenden Schritte, die zum Bereitstellen einer Lösung auf Dokumentebene erforderlich sind:

  • Erstellen des Visual Studio-Setup-Projekts.
  • Fügen Sie die primäre Ausgabe Ihrer Lösung auf Dokumentebene hinzu. Die primäre Ausgabe enthält auch das Microsoft Office-Dokument.
  • Hinzufügen der Bereitstellungs- und Anwendungsmanifeste als lose Dateien.
  • Schließen Sie die abhängigen Komponenten aus dem Installationspaket aus (mit Ausnahme von Dienstprogramm-Assemblies).
  • Konfigurieren Sie die erforderlichen Pakete.
  • Konfigurieren Sie Startbedingungen.
  • Erstellen Sie das Setup-Projekt, und kopieren Sie die Ergebnisse an den Bereitstellungsort.
  • Stellen Sie die Lösung auf Dokumentebene auf dem Benutzercomputer bereit, indem Sie das Setup ausführen.
  • Aktualisieren Sie bei Bedarf die benutzerdefinierten Dokumenteigenschaften.

Ändern des Speicherorts des bereitgestellten Dokuments

Eigenschaften innerhalb eines Office-Dokuments werden verwendet, um Lösungen auf Dokumentebene zu finden. Wenn das Dokument in demselben Ordner wie die VSTO-Assembly installiert ist, sind keine Änderungen erforderlich. Wenn sie jedoch in einem anderen Ordner installiert ist, müssen diese Eigenschaften während des Setups aktualisiert werden.

Weitere Informationen zu diesen Dokumenteneigenschaften finden Sie unter Benutzerdefinierte Dokumenteigenschaften Übersicht.

Um diese Eigenschaften zu ändern, müssen Sie während des Setups eine benutzerdefinierte Aktion verwenden.

Das folgende Beispiel verwendet eine Lösung auf Dokumentebene namens ExcelWorkbookProject und ein Einrichtungsprojekt namens ExcelWorkbookSetup. Das ExcelWorkbookSetup-Projekt wird mit den oben beschriebenen Schritten konfiguriert, mit Ausnahme der Einstellung der Registrierungsschlüssel.

So fügen Sie das benutzerdefinierte Aktionsprojekt zu Ihrer Visual Studio-Lösung hinzu

  1. Fügen Sie der Projektmappe ein neues .NET-Konsolenprojekt hinzu, indem Sie mit der rechten Maustaste auf das Office-Dokumentbereitstellung-Projekt im Projektmappen-Explorer klicken

  2. Erweitern Sie Hinzufügen, und klicken Sie auf Neues Projekt.

  3. Wählen Sie die Konsolen-App-Vorlage aus, und nennen Sie das Projekt AddCustomizationCustomAction.

    Screenshot des Projektmappen-Explorer - AddCustomizationCustomAction

    Abbildung 12: Projektmappen-Explorer – AddCustomizationCustomAction

  4. Fügen Sie Referenzen auf die folgenden Assemblies hinzu:

    1. System.ComponentModel
    2. System.Configuration.Install
    3. Microsoft.VisualStudio.Tools.Applications
    4. Microsoft.VisualStudio.Tools.Applications.ServerDocument
  5. Kopieren Sie diesen Code in Program.cs oder Program.vb

    using System;
    using System.IO;
    using System.Collections;
    using System.ComponentModel;
    using System.Configuration.Install;
    using Microsoft.VisualStudio.Tools.Applications;
    using Microsoft.VisualStudio.Tools.Applications.Runtime;

    namespace AddCustomizationCustomAction
    {
        [RunInstaller(true)]
        public class AddCustomizations : Installer
        {
            public AddCustomizations() : base() { }

            public override void Install(IDictionary savedState)
            {
                base.Install(savedState);

                //Get the CustomActionData Parameters
                string documentLocation = Context.Parameters.ContainsKey("documentLocation") ? Context.Parameters["documentLocation"] : String.Empty;
                string assemblyLocation = Context.Parameters.ContainsKey("assemblyLocation") ? Context.Parameters["assemblyLocation"] : String.Empty;
                string deploymentManifestLocation = Context.Parameters.ContainsKey("deploymentManifestLocation") ? Context.Parameters["deploymentManifestLocation"] : String.Empty;
                Guid solutionID = Context.Parameters.ContainsKey("solutionID") ? new Guid(Context.Parameters["solutionID"]) : new Guid();

                string newDocLocation = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), Path.GetFileName(documentLocation));

                try
                {
                    //Move the file and set the Customizations
                    if (Uri.TryCreate(deploymentManifestLocation, UriKind.Absolute, out Uri docManifestLocationUri))
                    {
                        File.Move(documentLocation, newDocLocation);
                        ServerDocument.RemoveCustomization(newDocLocation);
                        ServerDocument.AddCustomization(newDocLocation, assemblyLocation,
                                                        solutionID, docManifestLocationUri,
                                                        true, out string[] nonpublicCachedDataMembers);
                    }
                    else
                    {
                        LogMessage("The document could not be customized.");
                    }
                }
                catch (ArgumentException)
                {
                    LogMessage("The document could not be customized.");
                }
                catch (DocumentNotCustomizedException)
                {
                    LogMessage("The document could not be customized.");
                }
                catch (InvalidOperationException)
                {
                    LogMessage("The customization could not be removed.");
                }
                catch (IOException)
                {
                    LogMessage("The document does not exist or is read-only.");
                }
            }

            public override void Rollback(IDictionary savedState)
            {
                base.Rollback(savedState);
                DeleteDocument();
            }
            public override void Uninstall(IDictionary savedState)
            {
                base.Uninstall(savedState);
                DeleteDocument();
            }
            private void DeleteDocument()
            {
                string documentLocation = Context.Parameters.ContainsKey("documentLocation") ? Context.Parameters["documentLocation"] : String.Empty;

                try
                {
                    File.Delete(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), Path.GetFileName(documentLocation)));
                }
                catch (Exception)
                {
                    LogMessage("The document doesn't exist or is read-only.");
                }
            }
            private void LogMessage(string Message)
            {
                if (Context.Parameters.ContainsKey("LogFile"))
                {
                    Context.LogMessage(Message);
                }
            }

            static void Main() { }
            }
    }

Um dem Dokument die Anpassung hinzuzufügen, müssen Sie über die Lösungs-ID Ihrer VSTO-Lösung auf Dokumentebene verfügen. Dieser Wert wird aus der Visual Studio-Projektdatei abgerufen.

So rufen Sie die Lösungs-ID ab

  1. Klicken Sie im Menü Build auf Build Solution, um die Projektmappe auf Dokumentebene zu erstellen, und fügen Sie der Projektdatei die Lösungs-ID-Eigenschaft hinzu.

  2. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt ExcelWorkbookProject auf Dokumentebene

  3. Klicken Sie auf Projekt entladen, um in Visual Studio auf die Projektdatei zuzugreifen.

    Screenshot von Projektmappen-Explorer Entladen der Excel-Dokumentlösung

    Abbildung 13: Entladen der Excel-Dokumentlösung

  4. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf ExcelWorkbookProject, und klicken Sie auf EditExcelWorkbookProject.vbproj oder Edit ExcelWorkbookProject.csproj.

  5. Suchen Sie im ExcelWorkbookProject-Editor das SolutionID-Element innerhalb des PropertyGroup-Elements.

  6. Kopieren Sie den GUID-Wert dieses Elements.

    Abrufen der SolutionID

    Abbildung 14: Abrufen der SolutionID

  7. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf "ExcelWorkbookProject", und klicken Sie auf Projekt erneut laden.

  8. Klicken Sie im Dialogfeld, das angezeigt wird, auf Ja, um den ExcelWorkbookProject-Editor zu schließen.

  9. Die Lösungs-ID wird in der benutzerdefinierten Aktion installieren verwendet.

Der letzte Schritt besteht darin, die benutzerdefinierte Aktion für die Schritte Installieren und Deinstallieren zu konfigurieren.

So konfigurieren Sie das Setup-Projekt

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf ExcelWorkbookSetup, Hinzufügen erweitern und klicken Sie auf Projekt-Ausgabe.

  2. Klicken Sie im Dialogfeld Projektausgabegruppe hinzufügen in der Projektliste auf AddCustomizationCustomAction.

  3. Wählen Sie Primäre Ausgabe aus, und klicken Sie auf OK, um das Dialogfeld zu schließen und die Assembly mit der benutzerdefinierten Aktion zum Setup-Projekt hinzuzufügen.

    Screenshot der benutzerdefinierten Aktion Dokumentmanifest – Projektausgabegruppe hinzufügen

    Abbildung 15: Benutzerdefinierte Dokumentmanifestaktion – Projektausgabegruppe hinzufügen

  4. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf ExcelWorkbookSetup.

  5. Erweitern Sie Ansicht, und klicken Sie auf Benutzerdefinierte Aktionen.

  6. Klicken Sie im Editor für benutzerdefinierte Aktionen (ExcelWorkbookSetup) mit der rechten Maustaste auf Benutzerdefinierte Aktionen, und klicken Sie auf Benutzerdefinierte Aktion hinzufügen.

  7. Klicken Sie im Dialogfeld Element auswählen in Projekt in der Liste Suchen in auf Anwendungsordner. Wählen Sie primäre Ausgabe aus AddCustomizationCustomAction(aktiv) aus, und klicken Sie auf OK, um die benutzerdefinierte Aktion zum Installationsschritt hinzuzufügen.

  8. Klicken Sie unter dem Knoten Installieren mit der rechten Maustaste auf primäre Ausgabe von AddCustomizationCustomAction(Active), und klicken Sie auf Umbenennen. Benennen Sie die benutzerdefinierte Aktion Dokument kopieren in Eigene Dokumente, und Anpassung anfügen.

  9. Klicken Sie unter dem Knoten Deinstallieren mit der rechten Maustaste auf primäre Ausgabe von AddCustomizationCustomAction(Active), und klicken Sie auf Umbenennen. Benennen Sie die benutzerdefinierte Aktion Dokument aus dem Ordner Dokumente entfernen.

    Screenshot des Fensters Dokument Manifest benutzerdefinierten Aktion

    Abbildung 16: Benutzerdefinierte Dokumentmanifest-Aktionen

  10. Klicken Sie im Editor für benutzerdefinierte Aktionen (ExcelWorkbookSetup) mit der rechten Maustaste auf Dokument in eigene Dokumente kopieren, und Anpassungen anfügen, und klicken Sie auf Eigenschaftenfenster.

  11. Geben Sie im Fenster CustomActionData Eigenschaften den Speicherort der Anpassungs-DLL, des Bereitstellungsmanifests und den Speicherort des Microsoft Office-Dokuments ein. Die SolutionID ist ebenfalls erforderlich.

  12. Wenn Sie Setupfehler bei einer Datei protokollieren möchten, schließen Sie einen LogFile-Parameter ein. s

    /assemblyLocation="[INSTALLDIR]ExcelWorkbookProject.dll" /deploymentManifestLocation="[INSTALLDIR]ExcelWorkbookProject.vsto" /documentLocation="[INSTALLDIR]ExcelWorkbookProject.xlsx" /solutionID="Your Solution ID" /LogFile="[TARGETDIR]Setup.log"
    

    Screenshot der benutzerdefinierten Aktion zum Kopieren des Dokuments in Meine Dokumente Eigenschaftenfenster

    Abbildung 17: Benutzerdefinierte Aktion zum Kopieren des Dokuments in Eigene Dokumente

  13. Die benutzerdefinierte Aktion für die Deinstallation benötigt den Namen des Dokuments. Sie können dies mithilfe desselben documentLocation-Parameters in CustomActionData angeben

    /documentLocation="[INSTALLDIR]ExcelWorkbookProject.xlsx"
    
  14. Kompilieren und Bereitstellen des ExcelWorkbookSetup-Projekts.

  15. Suchen Sie im Ordner Eigene Dokumente und öffnen Sie die ExcelWorkbookProject.xlsx Datei.

Weitere Ressourcen

So installieren Sie Visual Studio-Tools für Office Runtime

Office Primary Interop Assemblies

Registrierungseinträge für VSTO-Add-Ins

Custom Document Properties Overview

Angeben von Formularbereichen in der Windows-Registrierung

Granting Trust to Documents

Über die Autoren

Wouter van Vugt ist ein Microsoft MVP mit Office Open XML-Technologien und ein unabhängiger Berater, der sich auf die Erstellung von Office Business Applications (OBAs) mit SharePoint, Microsoft Office und verwandten .NET-Technologien konzentriert. Wouter leistet häufig Beiträge für Entwicklercommunity-Sites wie MSDN. Er hat mehrere Whitepaper und Artikel sowie ein Buch veröffentlicht, das unter dem Titel Open XML: Erläutertes E-Book verfügbar ist. Wouter ist Gründer von Code-Counsel, einem niederländischen Unternehmen, das sich auf die Bereitstellung modernster technischer Inhalte durch eine Vielzahl von Kanälen konzentriert. Sie können mehr über Wouter erfahren, indem Sie seinen Blog lesen.

Ted Pattison ist ein SharePoint MVP, Autor, Trainer und Gründer der Ted Pattison Group. Im Herbst 2005 wurde Ted von der Microsoft-Entwickler-Platform Evangelism-Gruppe eingestellt, um den Schulungsplan für aufsteigende Entwickler für Windows SharePoint Services 3.0 und Microsoft Office SharePoint Server 2007 zu erstellen. Seit dieser Zeit konzentriert sich Ted vollständig auf die Ausbildung professioneller Entwickler in SharePoint 2007-Technologien. Ted hat das Schreiben eines Buchs für Microsoft Press mit dem Titel „Inside Windows SharePoint Services 3.0“ abgeschlossen, das sich auf die Verwendung von SharePoint als Entwicklungsplattform zum Erstellen von Geschäftslösungen konzentriert. Ted schreibt außerdem eine Kolumne für Entwickler für das MSDN Magazine mit dem Titel „Office Space“.