Freigeben über


Bereitstellen einer VSTO-Lösung mit Windows Installer

Zusammenfassung

Erfahren Sie, wie Sie ein Microsoft Visual Studio Tools for Office (VSTO)-Add-in oder eine Dokumentenlösung mit einem Visual Studio Installer-Projekt 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 for 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. Add-Ins, die Administratorrechte wie Add-Ins auf Computerebene erfordern, können jedoch nicht installiert werden.

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-Laufzeit abzielen

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

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

Erforderliche Komponenten auf dem Zielcomputer

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.
  • Die Microsoft Visual Studio 2010-Tools für Office-Runtime. Die Laufzeit 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 neu verteilen.
  • Die primären Interopassemblys für Microsoft Office, wenn Sie keine eingebetteten Interoptypen verwenden.
  • Alle Dienstprogrammbibliotheken, auf die in 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 Anpassungsassembly und alle Assemblys, 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ägen 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 "Übersicht über benutzerdefinierte Dokumenteigenschaften".

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 gemacht werden, indem das Manifest mit einem Zertifikat signiert wird, eine Vertrauensstellung durch eine Einschlussliste erstellt wird oder indem es an einem vertrauenswürdigen Ort auf dem Computer installiert wird.

Weitere Informationen zum Abrufen eines Zertifikats zum Signieren 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 Aufnahmeliste finden Sie unter How to: Configure Inclusion List Security.

Wenn keine der beiden Optionen verwendet wird, wird dem Benutzer eine Vertrauenswürdigkeitsaufforderung 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 Vertrauensstellungen für Dokumente.

Erstellen eines Standardinstallationsprogramms

Die Projektvorlagen "Setup" und "Deployment" sind in der Microsoft Visual Studio Installer Projects-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-Ins auf Anwendungsebene.
  • Konfigurieren Sie erforderliche Komponenten, damit sie auf den Endbenutzercomputern 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.

Der erste Schritt besteht darin, das Setupprojekt zu erstellen.

So erstellen Sie das AddIn-Setupprojekt

  1. Öffnen Sie das Office-AddIn-Projekt, das Sie bereitstellen möchten. In diesem Beispiel verwenden wir ein Excel-Add-In namens "ExcelAddIn".

  2. Erweitern Sie im geöffneten Office-Projekt im Menü Datei den Punkt Hinzufügen und klicken Sie auf Neues Projekt, um ein neues Projekt hinzuzufügen.

  3. Geben Sie im Feld "Name" den Namen "OfficeAddInSetup" ein.

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

Screenshot des Dateisystem-Explorers für das Setupprojekt

Abbildung 1: Dateisystem-Explorer für das Setupprojekt

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

So fügen Sie die ExcelAddIn-Projektausgabe hinzu

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

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

  3. Klicken Sie auf 'OK ', um die Projektausgabe zum Setupprojekt hinzuzufügen.

    Screenshot des Dialogfelds

    Abbildung 2: Dialogfeld "Projektausgabegruppe einrichten"

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

Fügen Sie die Bereitstellungs- und die Anwendungsmanifeste hinzu

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

  2. Navigieren Sie im Dialogfeld "Dateien hinzufügen " zum ExcelAddIn-Ausgabeverzeichnis . In der Regel ist das Ausgabeverzeichnis der bin\release Unterordner des Projektstammverzeichnisses, je nach ausgewählter Build-Konfiguration.

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

    Screenshot der Anwendungs- und Bereitstellungsmanifeste im Projektmappen-Explorer

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

Ein Bezug auf das ExcelAddIn umfasst alle Komponenten, die von ExcelAddIn erfordert werden. Diese Komponenten müssen ausgeschlossen und mithilfe von erforderlichen Paketen bereitgestellt werden, damit sie ordnungsgemäß registriert werden können. Außerdem müssen die Softwarelizenzbedingungen angezeigt und akzeptiert 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" mit Ausnahme von Microsoft .NET Framework oder einer Assembly aus, die mit *.Utilities.dllendet. Die Dienstprogrammbibliotheken 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 Assemblys aus dem Setupprojekt auszuschließen. Stellen Sie sicher, dass keine Hilfsprogrammassemblys ausgeschlossen werden.

    Screenshot des Projekt-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 Voraussetzungen installiert werden, bevor das Add-In ordnungsgemäß ausgeführt werden kann:

  • Die Microsoft .NET Framework-Version, auf die die Office-Lösung ausgerichtet ist.
  • Microsoft Visual Studio 2010 Tools for Office Runtime.

So konfigurieren Sie abhängige Komponenten als Voraussetzungen

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

  2. Das Dialogfeld "Eigenschaftsseiten von OfficeAddInSetup" wird angezeigt.

  3. Klicken Sie auf die Schaltfläche "Voraussetzungen" .

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

    Screenshot des Dialogfelds

    Abbildung 5: Dialogfeld "Voraussetzungen"

    Hinweis

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

Microsoft Office sucht Add-Ins mithilfe von Registrierungsschlüsseln. Die Schlüssel im HKEY_CURRENT_USER Hive werden verwendet, um das Add-In für jeden einzelnen Benutzer zu registrieren. Die Schlüssel unter dem HKEY_LOCAL_MACHINE Baum werden verwendet, um das Add-on für alle Benutzer des Rechners zu registrieren. Weitere Informationen zu Registrierungsschlüsseln finden Sie unter Registrierungseinträge für VSTO-Add-Ins.

So konfigurieren Sie die Registrierung

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

  2. Ansicht erweitern.

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

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

  5. Löschen Sie den [Manufacturer] -Schlüssel, der unter HKEY_LOCAL_MACHINE\Softwaregefunden wurde.

  6. Erweitern Sie HKEY_CURRENT_USER und dann Software.

  7. Löschen Sie den [Manufacturer] -Schlüssel, der unter HKEY_CURRENT_USER\Softwaregefunden wurde.

  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 User/Machine Hive, 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:

    Benutzer-/Maschinenstruktur\Software\Microsoft\Office\Excel\Addins\SampleCompany.ExcelAddIn

    Der Firmenname 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 Zeichenfolgewert. Verwenden Sie den Text "Beschreibung " für den Namen.

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

    • FriendlyName vom Typ "String"
    • LoadBehavior vom Typ DWORD
    • Manifest des Typs "String"
  12. Klicken Sie im Registrierungs-Editor mit der rechten Maustaste auf den Wert "Beschreibung ", und klicken Sie auf "Eigenschaftenfenster". Geben Sie im Eigenschaftenfensterdas Excel Demo-AddIn für die Value-Eigenschaft ein.

  13. Wählen Sie im Registrierungs-Editor den FriendlyName-Schlüssel aus. Ändern Sie im Eigenschaftenfenster die Eigenschaft "Value " in "Excel Demo AddIn".

  14. Wählen Sie den LoadBehavior-Schlüssel im Registrierungs-Editor aus. Ändern Sie im Eigenschaftenfenster die Werteigenschaft in 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 Manifestschlüssel im Registrierungs-Editor aus. Ändern Sie im Eigenschaftenfenster die Werteigenschaft in file:///[TARGETDIR]ExcelAddIn.vsto|vstolocal

    Screenshot des Registrierungs-Editors

    Abbildung 6: Einrichten von Registrierungsschlüsseln

    Die VSTO-Laufzeit 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 nachfolgende \ Zeichen, sodass der Dateiname des Bereitstellungsmanifests ExcelAddIn.vsto ohne das Zeichen \sein sollte. Das vstolocal postfix teilt der VSTO-Laufzeit mit, dass das Add-In von diesem Speicherort anstelle des ClickOnce-Caches geladen werden soll. Wenn Sie dieses Postfix entfernen, wird die Laufzeit 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 Setupprojekts nur auf 64-Bit festgelegt werden.

  1. Wählen Sie das OfficeAddInSetup-Projekt im Projektmappen-Explorer aus.
  2. Wechseln Sie zum Eigenschaftenfenster , und legen Sie die 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. Eine für 32-Bit und eine 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. Ansicht erweitern.

  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-Laufzeit installiert. Der Wert des Schlüssels ist dann für die verschiedenen Komponenten 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 Eigenschaftenfenster die folgenden Eigenschaften fest:

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

  8. Legen Sie im Eigenschaftenfenster die folgenden 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 „Die Visual Studio 2010 Tools für Office Runtime sind nicht installiert. Bitte führen Sie Setup.exe aus, um das Add-in zu installieren“ fest.

      Screenshot des Eigenschaftenfensters für die Startbedingung

      Abbildung 8: Eigenschaftenfenster für die Startbedingung "Laufzeitverfügbarkeit überprüfen"

Die oben genannte Startbedingung überprüft explizit, ob die VSTO-Laufzeit 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 den Suchzielcomputer, 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 Eigenschaftenfenster die folgenden Eigenschaften fest:

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

  5. Ändern Sie den Wert der Condition-Eigenschaft in VSTORUNTIMEREDIST >="10.0.30319" ODER OFFICERUNTIME>="10.0.21022". Die Versionsnummern können je nach den von Ihrem Add-In benötigten Laufzeitversionen variieren.

    Screenshot des Eigenschaftenfensters für die Startbedingung

    Abbildung 9: Eigenschaftenfenster für die Überprüfen der Laufzeitverfügbarkeit durch Redist oder Office-Startbedingung

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

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

  1. Erweitern Sie den Knoten "Verweise" im Projektmappen-Explorer
  2. Wählen Sie einen der PIA-Verweise aus, z. B. Office.
  3. Zeigen Sie die Eigenschaftenfenster an, indem Sie F4 drücken oder im Kontextmenü "Assemblys" die Option "Eigenschaften" auswählen.
  4. Überprüfen Sie den Wert der Eigenschaft Embed Interop Types.

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

Weitere Informationen finden Sie unter Type Equivalence and Embedded Interop Types

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 klicken Sie dann auf "Startbedingung für 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 "Komponente1 suchen ", und klicken Sie auf "Eigenschaftenfenster ", um die Eigenschaften der Startbedingung anzuzeigen.

  3. Legen Sie im Eigenschaftenfenster die folgenden Eigenschaften fest:

    1. Ändern Sie den Wert der Eigenschaft (Name) in "Suchen nach Office Shared PIA"
    2. Ändern Sie den Wert der ComponentID in "Component 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 in HASSHAREDPIA.
  4. Klicken Sie im Editor "Startbedingungen(OfficeAddInSetup)" mit der rechten Maustaste auf "Bedingung1 ", und klicken Sie auf "Eigenschaftenfenster ", um die Eigenschaften der Startbedingung anzuzeigen.

  5. Ändern Sie diese Eigenschaften von Condition1:

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

    Screenshot des Eigenschaftenfensters für die Startbedingung

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

Komponenten-IDs der primären Interopassemblys 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} - -
Aussicht {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}
Wort {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 Gemeinsame Nutzung {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

Abbildung 11: Endgültige Startbedingungen

Sie können die Startbedingungen für die ExcelAddIn-Installation weiter verfeinern. Beispielsweise kann es nützlich sein, zu überprüfen, ob die eigentliche Ziel-Office-Anwendung installiert ist.

So erstellen Sie das Setupprojekt

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das OfficeAddInSetup-Projekt , und klicken Sie auf "Erstellen".
  2. Navigieren Sie mit Windows Explorer abhängig von der ausgewählten Buildkonfiguration zum Ausgabeverzeichnis des OfficeAddInSetup-Projekts , und wechseln Sie zum Ordner "Release" 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 Softwarelizenzbedingungen, und schließen Sie den Setup-Assistenten ab, um das Add-In auf dem Benutzercomputer zu installieren.

Die Excel Office-Lösung sollte von dem während des Setups angegebenen Speicherort installiert und ausgeführt werden.

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-Setupprojekt erforderlich.

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

  • Erstellen Sie das Visual Studio-Setupprojekt.
  • Fügen Sie die primäre Ausgabe Ihrer Lösung auf Dokumentebene hinzu. Die primäre Ausgabe enthält auch das Microsoft Office-Dokument.
  • Fügen Sie die Bereitstellungs- und Anwendungsmanifeste als lose Dateien hinzu.
  • Schließen Sie die abhängigen Komponenten aus dem Installationspaket aus (mit Ausnahme von Hilfsprogrammassemblys).
  • Konfigurieren Sie die erforderlichen Pakete.
  • Konfigurieren Sie Startbedingungen.
  • Erstellen Sie das Setupprojekt, 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 Dokumenteigenschaften finden Sie unter "Übersicht über benutzerdefinierte Dokumenteigenschaften".

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

Im folgenden Beispiel wird eine Lösung auf Dokumentenebene namens "ExcelWorkbookProject" und ein Setupprojekt namens "ExcelWorkbookSetup" verwendet. Das ExcelWorkbookSetup-Projekt wird mit den oben beschriebenen Schritten konfiguriert, mit Ausnahme der Einstellung der Registrierungsschlüssel.

So fügen Sie der Visual Studio-Projektmappe das benutzerdefinierte Aktionsprojekt hinzu

  1. Fügen Sie der Projektmappe ein neues .NET-Konsolenprojekt hinzu, indem Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Office-Dokumentbereitstellungsprojekt 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-Explorers – AddCustomizationCustomAction

    Abbildung 12: Solution Explorer – AddCustomizationCustomAction

  4. Fügen Sie einen Verweis auf diese Assemblys 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ü " Erstellen " auf " Projektmappe erstellen", 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 des Projektmappen-Explorers beim Entladen der Excel-Dokument-Lö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 Lösungs-ID

    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, um den ExcelWorkbookProject-Editor zu schließen, auf "Ja".

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

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

So konfigurieren Sie das Setupprojekt

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf ExcelWorkbookSetup, öffnen Sie die Option Hinzufügen und klicken Sie auf Projektausgabe.

  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 Setupprojekt hinzuzufügen.

    Screenshot der benutzerdefinierten Aktion

    Abbildung 15: Dokumentmanifest Benutzerdefinierte Aktion – 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. Im Dialogfeld "Element im Projekt auswählen", klicken Sie in der Liste "Suchen in" auf "Anwendungsordner". Wählen Sie die 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 die primäre Ausgabe von "AddCustomizationCustomAction(Active)", und klicken Sie auf "Umbenennen". Benennen Sie die benutzerdefinierte Aktion "Dokument kopieren" in "Eigene Dokumente", und fügen Sie die Anpassung an.

  9. Klicken Sie unter dem Knoten "Deinstallieren" mit der rechten Maustaste auf die 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

    Abbildung 16: Benutzerdefinierte Aktionen für das Dokumentenmanifest

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

  11. Geben Sie im Fenster "CustomActionData-Eigenschaften" den Speicherort der Anpassungs-DLL, das Bereitstellungsmanifest 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 des Fensters

    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 "Meine Dokumente ", und öffnen Sie die ExcelWorkbookProject.xlsx Datei.

Zusätzliche Ressourcen

Gewusst wie: Installieren der Visual Studio Tools für Office-Runtime

Primäre Interopassemblys von Office

Registrierungseinträge für VSTO-Add-Ins

Übersicht über benutzerdefinierte Dokumenteigenschaften

Angeben von Formularbereichen in der Windows-Registrierung

Dokumenten Vertrauen gewähren

Ü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 ist ein häufiger Mitwirkender auf Entwickler-Communitywebsites wie MSDN. Er hat mehrere Whitepapers und Artikel sowie ein Buch veröffentlicht, das unter dem Titel Open XML verfügbar ist: Erläutertes E-Book. 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 Developer Platform Evangelism-Gruppe von Microsoft 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 Entwicklerspalte für MSDN Magazine mit dem Titel "Office Space".