Exemplarische Vorgehensweise: Bereitstellen einer Anpassung auf Dokumentebene mithilfe einer Windows Installer-Datei (2003 System)
Aktualisiert: November 2007
Betrifft |
---|
Die Informationen in diesem Thema gelten nur für die angegebenen Visual Studio Tools for Office-Projekte und Versionen von Microsoft Office. Projekttyp
Microsoft Office-Version
Weitere Informationen hierzu finden Sie unter Verfügbare Features nach Anwendung und Projekttyp. |
Diese exemplarische Vorgehensweise veranschaulicht das Erstellen einer MSI-Datei (Microsoft Windows Installer), mit der Sie eine Anpassung auf Dokumentebene bereitstellen können. Weitere Informationen zu Anpassungen auf Dokumentebene finden Sie unter Architektur von Anpassungen auf Dokumentebene.
In dieser exemplarischen Vorgehensweise werden die folgenden Aufgaben veranschaulicht:
Erstellen eines Setup-Projekts, das Sie zum Erstellen einer Windows Installer-Datei verwenden können
Ändern des Setup-Projekts, sodass die Windows Installer-Datei die Visual Studio Tools for Office-Projektmappe installiert
Hinzufügen eines Schritts zum Setup-Projekt, in dem das im Visual Studio Tools for Office-Projektmappendokument eingebettete Anwendungsmanifest durch die Windows Installer-Datei bearbeitet wird
In dieser exemplarischen Vorgehensweise wird davon ausgegangen, dass auf dem Zielcomputer bereits die Software zum Ausführen von Visual Studio Tools for Office-Projektmappen installiert ist. Durch die von Ihnen erstellte Windows Installer-Datei wird weder überprüft, ob diese Software vorhanden ist, noch wird sie installiert. Weitere Informationen zur Installation der erforderlichen Software finden Sie unter Deploying Visual Studio 2005 Tools for Office Second Edition Solutions Using Windows Installer. Weitere Informationen zu den Voraussetzungen zum Ausführen von Visual Studio Tools for Office-Projektmappen finden Sie unter Gewusst wie: Vorbereiten von Endbenutzercomputern für die Ausführung von Office-Projektmappen (2003 System).
Hinweis: |
---|
Den Assemblys in Visual Studio Tools for Office-Projektmappen muss für das Ausführen der Projektmappe in den Sicherheitsrichtlinien des Endbenutzers volle Vertrauenswürdigkeit gewährt werden. Die in dieser exemplarischen Vorgehensweise erstellte Windows Installer-Datei stellt die zum Ausführen der Projektmappe erforderlichen Sicherheitsrichtlinien nicht bereit. Weitere Informationen zum Hinzufügen einer benutzerdefinierten Aktion, um der Anpassungsassembly Vertrauenswürdigkeit zu gewähren, finden Sie unter Deploying Visual Studio 2005 Tools for Office Second Edition Solutions Using Windows Installer. Informationen zur Sicherheit in Visual Studio Tools for Office-Projektmappen finden Sie unter Sicherheitsanforderungen für die Ausführung von Office-Projektmappen (2003 System) und unter Empfohlene Vorgehensweisen für die Sicherheit in Office-Projektmappen (2003 System) Weitere Informationen zum Festlegen der Sicherheitsrichtlinien auf Endbenutzercomputern finden Sie unter Bereitstellen der Sicherheitsrichtlinien. |
Vorbereitungsmaßnahmen
Zum Durchführen dieser exemplarischen Vorgehensweise benötigen Sie die folgenden Komponenten:
Visual Studio Tools for Office (eine optionale Komponente von Visual Studio 2008 Professional und Visual Studio Team System).
Microsoft Office Word 2003 oder Microsoft Office Excel 2003.
Erstellen des Projekts
In diesem Schritt erstellen Sie ein Excel-Arbeitsmappenprojekt. Wenn Sie die exemplarische Vorgehensweise mit einer vorhandenen Word- oder Excel-Projektmappe durchlaufen möchten, beginnen Sie beim Abschnitt "Erstellen des Setup-Projekts", und ersetzen Sie in allen Codebeispielen und Anweisungen den Projektnamen ExcelDeployment durch den Namen Ihres Projekts.
So erstellen Sie ein neues Projekt
Erstellen Sie ein Excel-Arbeitsmappenprojekt mit dem Namen ExcelDeployment unter Verwendung der Projektvorlage für Office 2003.
Wählen Sie im Assistenten Neues Dokument erstellen aus. Weitere Informationen hierzu finden Sie unter Gewusst wie: Erstellen von Visual Studio Tools for Office-Projekte.
Visual Studio öffnet die neue Excel-Arbeitsmappe im Designer und fügt dem Projektmappen-Explorer das Projekt ExcelDeployment hinzu.
Hinzufügen von Code im Hintergrund der Arbeitsmappe
Für das Projekt ist Code erforderlich, sodass Sie überprüfen können, ob die Projektmappe beim Öffnen des Dokuments funktioniert. Für diese exemplarische Vorgehensweise fügen Sie dem Startup-Ereignishandler der Arbeitsmappe ein Meldungsfeld hinzu.
So fügen Sie einem Initialisierungsereignis ein Meldungsfeld hinzu
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf ThisWorkbook.vb bzw. ThisWorkbook.cs, und klicken Sie dann im Kontextmenü auf Code anzeigen.
Fügen Sie dem Startup-Ereignishandler in der ThisWorkbook-Klasse folgenden Code hinzu, damit während der Initialisierung ein Meldungsfeld angezeigt wird.
Private Sub ThisWorkbook_Startup(ByVal sender As Object, ByVal e As System.EventArgs) _ Handles Me.Startup MessageBox.Show("The workbook is deployed successfully.") End Sub
private void ThisWorkbook_Startup(object sender, System.EventArgs e) { MessageBox.Show("The workbook is deployed successfully."); }
Drücken Sie F5, um das Projekt auszuführen.
Excel wird gestartet, und das Meldungsfeld wird angezeigt.
Schließen Sie das Meldungsfeld.
Beenden Sie Excel.
Erstellen eines Setup-Projekts
Setup-Projekte stellen Dateien und Code zum Kompilieren bereit, um eine Windows Installer-Datei für die Projektmappe zu erstellen. Weitere Informationen hierzu finden Sie unter Setup-Projekte.
So erstellen Sie ein Setup-Projekt für die Projektmappe
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Projektmappenknoten.
Zeigen Sie im Kontextmenü auf Hinzufügen, und klicken Sie auf Neues Projekt.
Das Dialogfeld Neues Projekt hinzufügen wird angezeigt.
Erweitern Sie im Bereich Projekttypen den Knoten Andere Projekttypen, und wählen Sie Setup und Bereitstellung aus.
Wählen Sie im Bereich Vorlagen die Option Setup-Projekt aus.
Geben Sie dem Projekt den Namen ExcelSetup.
Klicken Sie auf OK.
Das Projekt wird im Projektmappen-Explorer angezeigt. Standardmäßig enthält die mit diesem Setup-Projekt erstellte Windows Installer-Datei ein Dialogfeld, in dem der Endbenutzer den Installationsort für die Projektmappe angeben kann. Weitere Informationen finden Sie unter Dialogfeld "Installationsordner" der Benutzeroberfläche.
Hinzufügen der Arbeitsmappe und der Projektmappenassembly zum Setup-Projekt
Die primäre Ausgabe des Projekts ExcelDeployment besteht aus der Arbeitsmappe und der Projektmappenassembly. Fügen Sie diese Komponenten dem Setup-Projekt hinzu.
So fügen Sie dem Setup-Projekt das Dokument und die Assembly hinzu
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Projektknoten ExcelSetup.
Zeigen Sie im Menü Ansicht auf das Kontextmenü, und klicken Sie dann auf Dateisystem.
Klicken Sie im linken Bereich mit der rechten Maustaste auf Anwendungsordner.
Zeigen Sie im Kontextmenü auf Hinzufügen, und klicken Sie auf Projektausgabe.
Wählen Sie im Feld Projekt das Projekt ExcelDeployment aus.
Wählen Sie in der Liste der Ausgabetypen Primäre Ausgabe aus.
Klicken Sie auf OK.
Die Projektausgabe und die Abhängigkeiten werden im rechten Bereich angezeigt.
Erweitern Sie im Projektmappen-Explorer unter dem Projektknoten ExcelSetup den Knoten Gefundene Abhängigkeiten.
Klicken Sie mit der rechten Maustaste auf jede Abhängigkeit außer Microsoft .NET Framework, und klicken Sie im Kontextmenü jeweils auf Ausschließen.
Erstellen eines Projekts für benutzerdefinierte Aktionen
Benutzerdefinierte Aktionen stellen ein Windows Installer-Feature dar. Mit diesen können Sie am Ende des Installationsvorgangs Code für Aktionen ausführen, die während der Installation nicht ausgeführt werden können. Weitere Informationen finden Sie unter Benutzerdefinierte Aktionen.
So erstellen Sie ein Projekt für benutzerdefinierte Aktionen
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Projektmappenknoten.
Zeigen Sie im Kontextmenü auf Hinzufügen, und klicken Sie auf Neues Projekt.
Das Dialogfeld Neues Projekt hinzufügen wird angezeigt.
Erweitern Sie im Bereich Projekttypen den Knoten für Ihre Programmiersprache, und wählen Sie Windows aus.
Wählen Sie im Bereich Vorlagen den Eintrag Klassenbibliothek aus.
Geben Sie dem Projekt den Namen ExcelCustomAction.
Klicken Sie auf OK.
Das neue Projekt wird im Projektmappen-Explorer angezeigt.
Klicken Sie im Projektmappen-Explorer unter dem Projekt ExcelCustomAction mit der rechten Maustaste auf Class1.vb bzw. Class1.cs, und klicken Sie dann auf Löschen. Diese Datei wird in dieser exemplarischen Vorgehensweise nicht benötigt.
Erstellen einer benutzerdefinierten Aktion, die das Anwendungsmanifest bearbeitet
Weiter oben in dieser exemplarischen Vorgehensweise haben Sie das Projekt mit F5 ausgeführt. Durch den dabei ausgeführten Buildvorgang wurde das in der Arbeitsmappe eingebettete Anwendungsmanifest so bearbeitet, dass es auf den relativen Pfad der Assembly zeigt. Falls die Arbeitsmappe und die Assembly nach der Installation im selben Ordner bleiben, brauchen Sie das eingebettete Anwendungsmanifest nicht zu bearbeiten und können diesen Abschnitt überspringen. Wenn der Benutzer nach der Installation der Arbeitsmappe allerdings die Möglichkeit haben soll, die Projektmappe in einen anderen Ordner zu verschieben, müssen Sie das Anwendungsmanifest so bearbeiten, dass es auf den vollständigen Pfad der Assembly zeigt.
Zur Aktualisierung des im Visual Studio Tools for Office-Projektmappendokument eingebetteten Anwendungsmanifests müssen Sie nach Abschluss des Installationsvorgangs eine benutzerdefinierte Aktion ausführen, da der Speicherort der Projektmappenassembly nicht bekannt ist, bevor der Benutzer diesen während der Installation angibt. Bearbeiten Sie das eingebettete Anwendungsmanifest mithilfe der ServerDocument-Klasse. Fügen Sie einer Installer-Klasse innerhalb des Projekts für benutzerdefinierte Aktionen Code hinzu, um die ServerDocument-Klasse im Setup-Projekt verwenden zu können.
So erstellen Sie eine benutzerdefinierte Aktion, die das Anwendungsmanifest bearbeitet
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt ExcelCustomAction.
Zeigen Sie im Kontextmenü auf Hinzufügen, und klicken Sie auf Neues Element.
Das Dialogfeld Neues Element hinzufügen wird angezeigt.
Wählen Sie Installerklasse aus, und nennen Sie die Klasse ManifestEditor.
Fügen Sie dem Projekt ExcelCustomAction einen Verweis auf die Microsoft.VisualStudio.Tools.Applications.Runtime-Assembly hinzu.
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf die Datei ManifestEditor.cs bzw. ManifestEditor.vb, und klicken Sie dann auf Code anzeigen.
Fügen Sie am Anfang der Codedatei die folgende Imports-Anweisung bzw. using-Anweisung ein.
Imports Microsoft.VisualStudio.Tools.Applications.Runtime
using Microsoft.VisualStudio.Tools.Applications.Runtime;
Kopieren Sie den folgenden Code in die ManifestEditor-Klasse.
Durch diesen Code wird die Install-Methode überschrieben, die zum Ausführen von benutzerdefinierten Installationsaktionen verwendet wird. Der Code legt den vom Benutzer angegebenen Installationspfad auf die AssemblyPath-Eigenschaft fest. Der vom Benutzer angegebene Installationspfad und die Namen des Dokuments und der Assembly werden der Parameters-Eigenschaft entnommen.
Public Overrides Sub Install(ByVal stateSaver As System.Collections.IDictionary) UpdateApplicationManifest() MyBase.Install(stateSaver) End Sub Private Sub UpdateApplicationManifest() ' Get the parameters passed to the task. Dim targetDir As String = Me.Context.Parameters("targetdir") Dim documentName As String = Me.Context.Parameters("documentname") Dim assemblyName As String = Me.Context.Parameters("assemblyname") ' Get the application manifest from the document. Dim documentPath As String = System.IO.Path.Combine(targetDir, documentname) Dim serverDocument1 As ServerDocument = New ServerDocument(documentPath, _ System.IO.FileAccess.ReadWrite) Try Dim appManifest1 As AppManifest = serverDocument1.AppManifest Dim assemblyPath As String = System.IO.Path.Combine(targetDir, assemblyName) appManifest1.Dependency.AssemblyPath = assemblyPath serverDocument1.Save() Finally If Not serverDocument1 Is Nothing Then serverDocument1.Close() End If End Try End Sub
// Override the Install method to update the customization location // in the application manifest. public override void Install(System.Collections.IDictionary stateSaver) { UpdateApplicationManifest(); base.Install(stateSaver); } // Update the application manifest according to the the install location. private void UpdateApplicationManifest() { // Get the parameters passed to the task. string targetDir = this.Context.Parameters["targetdir"]; string documentName = this.Context.Parameters["documentname"]; string assemblyName = this.Context.Parameters["assemblyname"]; // Get the application manifest from the document. string documentPath = System.IO.Path.Combine(targetDir, documentName); ServerDocument serverDocument1 = new ServerDocument(documentPath, System.IO.FileAccess.ReadWrite); try { AppManifest appManifest1 = serverDocument1.AppManifest; string assemblyPath = System.IO.Path.Combine(targetDir, assemblyName); appManifest1.Dependency.AssemblyPath = assemblyPath; serverDocument1.Save(); } finally { if (serverDocument1 != null) { serverDocument1.Close(); } } }
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt ExcelCustomAction, und klicken Sie dann auf Erstellen.
Hinzufügen der benutzerdefinierten Aktion zum Setup-Projekt
Jetzt können Sie es der Windows Installer-Datei ermöglichen, die benutzerdefinierte Aktion auszuführen, die das Anwendungsmanifest bearbeitet. Fügen Sie dafür dem Setup-Projekt die primäre Ausgabe des ExcelCustomAction-Projekts hinzu.
So fügen Sie dem Setup-Projekt die primäre Ausgabe des Projekts für benutzerdefinierte Aktionen hinzu
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Projektknoten ExcelSetup.
Zeigen Sie im Kontextmenü auf Ansicht, und klicken Sie dann auf Benutzerdefinierte Aktionen.
Klicken Sie im Editor für benutzerdefinierte Aktionen mit der rechten Maustaste auf den Knoten Installieren, und klicken Sie auf Benutzerdefinierte Aktion hinzufügen.
Wählen Sie im Feld Suchen in die Option Anwendungsordner aus, und klicken Sie dann auf Ausgabe hinzufügen.
Wählen Sie im Feld Projekt das Projekt ExcelCustomAction aus.
Wählen Sie in der Liste der Ausgabetypen Primäre Ausgabe aus, und klicken Sie dann auf OK.
Stellen Sie sicher, dass die Liste primärer Ausgaben für das Setup-Projekt den Eintrag Primäre Ausgabe von ExcelCustomAction (Aktiv) enthält, und klicken Sie dann auf OK.
Erweitern Sie im Editor für benutzerdefinierte Aktionen den Eintrag Installieren.
Klicken Sie mit der rechten Maustaste auf Primäre Ausgabe von ExcelCustomAction (Aktiv), und klicken Sie dann auf Eigenschaftenfenster.
Legen Sie im Fenster Eigenschaftenfenster für die CustomActionData-Eigenschaft die folgende Zeichenfolge fest.
/targetdir="[TARGETDIR]\" /documentname="ExcelDeployment.xls" /assemblyname="ExcelDeployment.dll"
Informationen über die CustomActionData-Eigenschaft finden Sie unter CustomActionData-Eigenschaft.
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt ExcelSetup, und klicken Sie dann auf Erstellen.
Testen des Projekts
Sie können das Projekt nun testen, um sicherzustellen, dass die Projektmappe installiert wird, wenn die Windows Installer-Datei auf dem Entwicklungscomputer ausgeführt wird.
So testen Sie das Projekt
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt ExcelSetup, und klicken Sie dann auf Ausführen.
Folgen Sie den Anweisungen des Setup-Assistenten, und geben Sie einen Installationsordner auf dem Entwicklungscomputer an.
Öffnen Sie die Excel-Arbeitsmappe, die sich im Installationsordner befindet.
Vergewissern Sie sich, dass das Meldungsfeld angezeigt wird.
Siehe auch
Aufgaben
Konzepte
Bereitstellen von Office-Projektmappen (2003 System)
Bereitstellen von Anpassungen auf Dokumentebene (2003 System)
Bereitstellungsmodelle (2003 System)