Share via


Bereitstellen einer VSTO-Lösung mit 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. 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.
  • Microsoft Visual Studio 2010-Tools für Office-Laufzeit. 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 Hilfsprogrammassemblys, 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 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 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 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 für Setup und Bereitstellung 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 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 Vorlage "Projekt einrichten" aus.
  2. Klicken Sie auf Weiter.
  1. Geben Sie im Feld "Name " den Namen "OfficeAddInSetup" ein.
  1. Klicken Sie auf " Erstellen ", um das neue Setupprojekt zu erstellen.

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

Screenshot of the File System Explorer for the setup project

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 of the Setup Project Add Project Output Group dialog

    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.

So fügen Sie die Bereitstellungs- und Anwendungsmanifeste hinzu

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

  2. Navigieren Sie im Dialogfeld "Dateien hinzufügen" zum ExcelAddIn-Ausgabeverzeichnis . In der Regel ist das Ausgabeverzeichnis der Unterordner "bin\release " des Projektstammverzeichnisses, abhängig von der ausgewä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 Setupprojekt hinzuzufügen.

    Screenshot of the Application and deployment manifests in Solution Explorer

    Abbildung 3: Anwendungs- und Bereitstellungsmanifesten 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 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" aus, mit Ausnahme von Microsoft .NET Framework oder einer Assembly, die mit *endet. Utilities.dll. Die Dienstprogrammassemblys 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 of Solution Explorer showing the dependencies to exclude

    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 "Eigenschaftenseiten 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 of the Prerequisites Dialog Box

    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 Komponenten für die 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 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 unter HKEY_LOCAL_MACHINE\Software.

  6. Erweitern Sie HKEY_CURRENT_USER und dann Software.

  7. Löschen Sie den [Manufacturer] -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-/Computerstruktur" , und wählen Sie "Neuer Schlüssel" aus. Verwenden Sie die Textsoftware 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-/Computerstruktur\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 " String". 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 Eigenschaftenfenster das 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 of the Registry Editor

    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 of the Properties Window showing the Target Platform for registering Add-ins with 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 Teile des Installers ü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. Festlegen des Werts von RegKey auf SOFTWARE\Microsoft\VSTO Runtime Setup\v4R
    4. Lassen Sie die Root-Eigenschaft auf vsdrrHKLM festgelegt.
    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 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 die Visual Studio 2010-Tools für Office-Runtime fest, die nicht installiert ist. Führen Sie Setup.exe aus, um das Add-In zu installieren.

      Screenshot of the Properties Window for the Verify Runtime Availability launch condition

      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 Eigenschaftsfenster diese Eigenschaften fest:

    1. Legen Sie den Wert (Name) fest, um nach Office VSTO-Runtime zu suchen.
    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 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 unterscheiden sich möglicherweise je nach den Von Ihrem Add-In benötigten Versionen der Laufzeit.

    Screenshot of the Properties Windows for the launch condition

    Abbildung 9: Eigenschaften windows for the Verify Runtime Availability through Redist or Office launch condition

Wenn ein Add-In auf .NET Framework 4 oder neuer ausgerichtet ist, können die Typen innerhalb der primären Interopassemblys (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 des Knotens "Verweise" in 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 des Werts 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 Eigenschaftin 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. Die Nachricht in eine erforderliche Komponente für die Interaktion mit Excel ändern, ist nicht verfügbar. Bitte führen Sie setup.exe aus.

    Screenshot of the Properties Window for the Verify Office Shared PIA launch condition

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

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

Primäre Interopassembly 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-86662654666F9} {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 of the Final launch conditions

Abbildung 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 das tatsächliche Ziel Office-App lizenzierung 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 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-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 Projektmappe auf Dokumentebene 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 of the Solution Explorer - AddCustomizationCustomAction

    Abbildung 12: Projektmappen-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 of Solution Explorer Unloading Excel Document Solution

    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.

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

  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 Setupprojekt

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf ExcelWorkbookSetup, erweitern Sie "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 of the Document Manifest Custom Action - Add Project Output Group window

    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 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 of the Document Manifest Custom Actions window

    Abbildung 16: Benutzerdefinierte Dokumentmanifestaktionen

  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 of the Custom Action to Copy Document to My Documents Properties window

    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 Datei "ExcelWorkbookProject.xlsx".

Weitere Ressourcen

Gewusst wie: Installieren des 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 ist eine häufige Mitwirkender für 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".