Exemplarische Vorgehensweise: Kopieren eines Dokuments auf den Computer des Endbenutzers nach einer ClickOnce-Installation

Mit einer ClickOnce-Aktion nach der Bereitstellung können Sie Office-Projektmappen auf Dokumentebene installieren und dann das Dokument auf den Endbenutzercomputer kopieren. Dazu müssen Sie das Anwendungsmanifest ändern und das Anwendungs- und das Bereitstellungsmanifest vor der Installation erneut signieren.

Betrifft: Die Informationen in diesem Thema betreffen Projekte auf Dokument- und auf Anwendungsebene für Microsoft Office 2013 Preview und Microsoft Office 2010. Weitere Informationen finden Sie unter Verfügbare Funktionen nach Office-Anwendung und Projekttyp.

In dieser exemplarischen Vorgehensweise werden die folgenden Aufgaben veranschaulicht:

  • Erstellen einer zu bereitstellenden Office-Projektmappe

  • Implementieren einer Aktion nach der Bereitstellung, mit der ein Dokument auf den Desktop des Endbenutzers kopiert wird

  • Ändern des Anwendungsmanifests der Office-Projektmappe, um die Aktion nach der Bereitstellung auszuführen

  • Erneutes Signieren der Anwendungs- und Bereitstellungsmanifeste

Hinweis

Auf Ihrem Computer werden möglicherweise andere Namen oder Speicherorte für die Benutzeroberflächenelemente von Visual Studio angezeigt als die in den folgenden Anweisungen aufgeführten. Diese Elemente sind von der jeweiligen Visual Studio-Version und den verwendeten Einstellungen abhängig. Weitere Informationen finden Sie unter Visual Studio-Einstellungen.

Erforderliche Komponenten

Zum Durchführen dieser exemplarischen Vorgehensweise benötigen Sie die folgenden Komponenten:

-

Eine Version von Visual Studio 2012, die die Microsoft Office-Entwicklungstools einschließt. Weitere Informationen finden Sie unter [Konfigurieren eines Computers zum Entwickeln von Office-Lösungen](https://msdn.microsoft.com/de-de/library/bb398242\(v=vs.110\)).
  • Excel 2013-Vorschau oder Excel 2010.

  • Testcomputer

Erstellen eines neuen Projekts

Zuerst erstellen Sie ein Excel-Arbeitsmappenprojekt.

So erstellen Sie ein neues Excel-Projekt

  • Erstellen Sie ein Excel-Projekt auf Dokumentebene. Benennen Sie das Projekt mit ExcelWorkbook, und speichern Sie das Projekt im Verzeichnis %USERPROFILE%\Documents\Visual Studio 2012\Projects. Weitere Informationen finden Sie unter Gewusst wie: Erstellen von Office-Projekten in Visual Studio.

    In Visual Studio wird die neue Excel-Arbeitsmappe im Designer geöffnet und dem Projektmappen-Explorer das Projekt ExcelWorkbook hinzugefügt.

Erstellen eines Klassenbibliotheksprojekts, mit dem die Aktion nach der Bereitstellung definiert wird

Sie müssen die Aktion nach der Bereitstellung in einer separaten Klassenbibliothek definieren. Mit der Aktion nach der Bereitstellung wird das Dokument auf den Endbenutzercomputer kopiert.

So erstellen Sie eine Klassenbibliothek für die Aktion nach der Bereitstellung

  1. Zeigen Sie im Menü Datei auf Hinzufügen, und klicken Sie dann auf Neues Projekt.

  2. Klicken Sie im Dialogfeld Neues Projekt hinzufügen im Bereich Installierte Vorlagen auf Fenster.

  3. Klicken Sie im Bereich Vorlagen auf Klassenbibliothek.

  4. Geben Sie im Feld Name die Zeichenfolge FileCopyPDA ein, und klicken Sie dann auf OK.

  5. In Projektmappen-Explorer klicken Sie auf FileCopyPDA.

  6. Klicken Sie im Menü auf ProjektHinzufügenVerweis.

    Das Dialogfeld Verweis hinzufügen wird angezeigt.

  7. Klicken Sie auf der Registerkarte .NET fügen Sie Verweise auf "Microsoft.VisualStudio.Tools.Applications.Runtime" und "Microsoft.VisualStudio.Tools.Applications.ServerDocument" hinzu.

  8. Fügen Sie am Anfang der in der Class1-Codedatei die folgenden using- oder Imports-Anweisungen hinzu.

    Imports Microsoft.VisualStudio.Tools.Applications.Deployment
    Imports Microsoft.VisualStudio.Tools.Applications
    
    using Microsoft.VisualStudio.Tools.Applications.Deployment;
    using Microsoft.VisualStudio.Tools.Applications;
    using System.IO;
    
  9. Benennen Sie die Klasse in FileCopyPDA um, und fügen Sie dann der FileCopyPDA-Klasse den folgenden Code hinzu. Dieser Code gibt an, dass die FileCopyPDA-Klasse von IAddInPostDeploymentAction erbt.

    Public Class FileCopyPDA
        Implements IAddInPostDeploymentAction
    
    public class FileCopyPDA : IAddInPostDeploymentAction
    
  10. Fügen Sie folgenden Code hinzu, um die IAddInPostDeploymentAction.Execute-Methode zu implementieren. Mit diesem Code werden die folgenden Aufgaben ausgeführt:

    • Kopieren der Excel-Arbeitsmappendatei auf den Benutzerdesktop, wenn die Projektmappe installiert oder aktualisiert wird.

    • Ändern der _AssemblyLocation-Eigenschaft von einem relativen Pfad in einen vollqualifizierten Pfad für das Bereitstellungsmanifest. Dies wird mithilfe der AddCustomization-Methode und der RemoveCustomization-Methode erreicht.

    • Löschen der Datei, wenn die Projektmappe deinstalliert wird.

    Sub Execute(ByVal args As AddInPostDeploymentActionArgs) Implements IAddInPostDeploymentAction.Execute
        Dim dataDirectory As String = "Data\ExcelWorkbook.xlsx"
        Dim file As String = "ExcelWorkbook.xlsx"
        Dim sourcePath As String = args.AddInPath
        Dim deploymentManifestUri As Uri = args.ManifestLocation
        Dim destPath As String = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory)
        Dim sourceFile As String = System.IO.Path.Combine(sourcePath, dataDirectory)
        Dim destFile As String = System.IO.Path.Combine(destPath, file)
    
        Select Case args.InstallationStatus
            Case AddInInstallationStatus.InitialInstall, AddInInstallationStatus.Update
                System.IO.File.Copy(sourceFile, destFile)
                ServerDocument.RemoveCustomization(destFile)
                ServerDocument.AddCustomization(destFile, deploymentManifestUri)
                Exit Select
            Case AddInInstallationStatus.Uninstall
                If System.IO.File.Exists(destFile) Then
                    System.IO.File.Delete(destFile)
                End If
                Exit Select
        End Select
    End Sub
    
    public void Execute(AddInPostDeploymentActionArgs args) 
    {
        string dataDirectory = @"Data\ExcelWorkbook.xlsx";
        string file = @"ExcelWorkbook.xlsx";
        string sourcePath = args.AddInPath;
        Uri deploymentManifestUri = args.ManifestLocation;
        string destPath = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
        string sourceFile = System.IO.Path.Combine(sourcePath, dataDirectory);
        string destFile = System.IO.Path.Combine(destPath, file);
    
        switch (args.InstallationStatus)
        {
            case AddInInstallationStatus.InitialInstall:
            case AddInInstallationStatus.Update:
                File.Copy(sourceFile, destFile);
                ServerDocument.RemoveCustomization(destFile);
                ServerDocument.AddCustomization(destFile, deploymentManifestUri);
                break;
            case AddInInstallationStatus.Uninstall:
                if (File.Exists(destFile))
                {
                    File.Delete(destFile);
                }
                break;
        }
    }
    

Erstellen und Veröffentlichen der Projektmappe

Erstellen und veröffentlichen Sie die Office-Projektmappen mit dem Webpublishing-Assistenten oder auf der Seite Projekt auf dem Entwicklungscomputer.

So veröffentlichen Sie das Excel-Projekt

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt FileCopyPDA, und klicken Sie anschließend auf Erstellen.

  2. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt ExcelWorkbook, und klicken Sie anschließend auf Erstellen.

  3. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt ExcelWorkbook, und klicken Sie anschließend auf Verweis hinzufügen.

  4. Klicken Sie im Dialogfeld Verweis hinzufügen auf die Registerkarte Projekte.

  5. Klicken Sie auf FileCopyPDA und dann auf OK.

  6. Klicken Sie im Projektmappen-Explorer auf das Projekt ExcelWorkbook.

  7. Klicken Sie im Menü Projekt auf Neuer Ordner.

  8. Geben Sie Data ein, und drücken Sie die EINGABETASTE.

  9. Klicken Sie im Projektmappen-Explorer auf den Ordner Daten.

  10. Klicken Sie im Menü Projekt auf Vorhandenes Element hinzufügen.

  11. Wechseln Sie im Dialogfeld Vorhandenes Element hinzufügen zum Ausgabeverzeichnis für das Projekt ExcelWorkbook.

  12. Klicken Sie auf ExcelWorkbook.xlsx und dann auf Hinzufügen.

  13. Klicken Sie im Projektmappen-Explorer auf ExcelWorkbook.xlsx.

    Hinweis

    Wenn Sie diese Datei später ändern, müssen Sie die Datei aktualisieren, indem Sie die aktuelle Version der Datei hinzufügen.

  14. Ändern Sie im Eigenschaftenfenster die Eigenschaft Buildvorgang in Inhalt, und die Eigenschaft In Ausgabeverzeichnis kopieren in Kopieren, wenn neuer.

  15. Veröffentlichen Sie das Projekt ExcelWorkbook im Ordner c:\publish. Weitere Informationen finden Sie unter Gewusst wie: Veröffentlichen einer Office-Projektmappe mit ClickOnce.

Ändern des Anwendungsmanifests

Ändern Sie im XML-Editor von Visual Studio das Anwendungsmanifest so, dass die Aktion nach der Bereitstellung File Copy ausgeführt wird. Der Inhalt eines Anwendungsmanifests ähnelt in etwa einer Rechnung von Materialien, in der der gesamte Inhalt eines Felds aufgeführt ist. In einem Anwendungsmanifest sind alle abhängigen und erforderlichen Assemblys aufgeführt. Im Anwendungsmanifest für eine Office-Lösung sind auch die Assemblys aufgeführt, die von einer Office-Anwendung für Add-Ins auf Anwendungsebene und Anpassungen auf Dokumentebene geladen werden sollen.

So fügen Sie dem Anwendungsmanifest die Installationsabhängigkeiten hinzu

  1. Öffnen Sie das c:\publish Verzeichnis durch Datei-Explorer.

  2. Öffnen Sie den Ordner Anwendungsdateien und dann den Ordner ExcelWorkbook_1_0_0_0.

  3. Öffnen Sie die Datei ExcelWorkbook.dll.manifest in einem Texteditor.

  4. Fügen Sie nach dem </vstav3:update>-Element den folgenden Code ein: Verwenden Sie für das Klassenattribut des <vstav3:entryPoint>-Elements die folgende Syntax: NamespaceName.ClassName. In diesem Beispiel sind der Namespace und die Klassennamen gleich, sodass der Name des resultierenden Einstiegspunkts FileCopyPDA.FileCopyPDA lautet.

    <vstav3:postActions>
      <vstav3:postAction>
        <vstav3:entryPoint
          class="FileCopyPDA.FileCopyPDA">
          <assemblyIdentity
            name="FileCopyPDA"
            version="1.0.0.0"
            language="neutral"
            processorArchitecture="msil" />
        </vstav3:entryPoint>
        <vstav3:postActionData>
        </vstav3:postActionData>
      </vstav3:postAction>
    </vstav3:postActions>
    

Erneutes Signieren des Manifeste

Mit der folgenden Prozedur wird das Anwendungsmanifest signiert und das Bereitstellungsmanifest aktualisiert. Dadurch wird sichergestellt, dass manipulierte Dateien nicht auf Endbenutzercomputern installiert werden.

So signieren Sie die Anwendungs- und Bereitstellungsmanifeste erneut

  1. Kopieren Sie die Zertifikatdatei ExcelWorkbook_TemporaryKey.pfx aus dem Projektmappenverzeichnis %USERPROFILE%\Documents\Visual Studio 2012\Projects\ExcelWorkbook\ExcelWorkbook in das Verzeichnis c:\publish\Application Files\ExcelWorkbook_1_0_0_0.

  2. Öffnen Sie die Eingabeaufforderung von Visual Studio.

  3. Wechseln Sie zum Verzeichnis c:\publish\Application Files\ExcelWorkbook_1_0_0_0.

  4. Signieren Sie das geänderte Anwendungsmanifest mit dem folgenden Befehl:

    mage -sign ExcelWorkbook.dll.manifest -certfile ExcelWorkbook_TemporaryKey.pfx
    

    Die Meldung "ExcelWorkbook.dll.manifest erfolgreich signiert" wird angezeigt.

  5. Wechseln Sie zum Verzeichnis c:\publish.

  6. Aktualisieren und signieren Sie das Bereitstellungsmanifest mit dem folgenden Befehl:

    mage -update ExcelWorkbook.vsto -appmanifest "Application Files\Ex
    celWorkbook_1_0_0_0\ExcelWorkbook.dll.manifest" -certfile "Application Files\ExcelWorkbook_1_0_0_0\ExcelWorkbook_TemporaryKey.pfx"
    

    Die Meldung "ExcelWorkbook.vsto erfolgreich signiert" wird angezeigt.

  7. Kopieren Sie die Datei ExcelWorkbook.vsto in das Verzeichnis c:\publish\Application Files\ExcelWorkbook_1_0_0_0.

Testen der Aktion nach der Bereitstellung

Mit der folgenden Prozedur wird sichergestellt, dass das aktualisierte Manifest die Excel-Arbeitsmappe installiert und die Arbeitsmappe auf den Desktop des Endbenutzers kopiert.

So testen Sie die Aktion nach der Bereitstellung

  1. Kopieren Sie das Verzeichnis c:\publish auf einen Testcomputer.

  2. Führen Sie das Programm Setup.exe aus, oder, wenn die erforderlichen Komponenten bereits auf dem Testcomputer installiert sind, doppelklicken Sie auf das Bereitstellungsmanifest ExcelWorkbook.vsto.

    Der Microsoft Office-Anpassungs-Installer wird angezeigt.

  3. Klicken Sie auf Installieren.

    Im Dialogfeld Microsoft Office-Anpassungs-Installer wird die folgende Meldung angezeigt: "Die Microsoft Office-Anpassung wurde erfolgreich installiert". Die Excel-Arbeitsmappe wird auf den Desktop des Endbenutzers kopiert.

  4. Öffnen Sie auf dem Desktop die Datei ExcelWorkbook.xlsx.

Siehe auch

Aufgaben

Gewusst wie: Erneutes Signieren von Anwendungs- und Bereitstellungsmanifesten

Weitere Ressourcen

Bereitstellen von Office-Projektmappen