Hinzufügen von benutzerdefinierten erforderlichen Komponenten

Aktualisiert: November 2007

Der Bootstrapper ist ein generisches Installationsprogramm, mit dem fast jedes verteilbare Paket in Form einer Windows Installer-Datei oder eines ausführbaren Programms gestartet werden kann. Ein Satz einfacher XML-Manifeste liefert die vom Bootstrapper benötigen Metadaten, um die Installation der Komponente zu verwalten. Der Bootstrapper kann sowohl für Windows Installer- als auch für ClickOnce-Anwendungen verwendet werden.

Wenn ein Benutzer Setup.exe startet, werden zunächst alle bereits installierten erforderlichen Komponenten ermittelt. Fehlende erforderliche Komponenten werden vom Bootstrapper gegebenenfalls in einem Installationsdialogfeld aufgeführt, und die entsprechenden Lizenzverträge werden angezeigt. Wenn alle erforderlichen Komponenten ermittelt sind, startet der Bootstrapper andernfalls einfach das Installationsprogramm für die Anwendung.

Sobald der Benutzer den Vertrag akzeptiert, startet der Download- und Installationsvorgang. Nach der Installation aller erforderlichen Komponenten veranlasst der Bootstrapper die Installation der Anwendung.

Erstellen von benutzerdefinierten Paketen

Es gibt Fälle, in denen Sie für die verteilbare Komponente kein Paket erstellen müssen. In der Regel müssen Sie Pakete nur für freigegebene Komponenten oder Systemkomponenten erstellen, die Dateien im GAC Dateien installieren müssen, globale Registrierungen durchführen oder einen Windows-Dienst bilden.

Sie sollten den Verwaltungsanbieter fragen, ob Sie die verteilbare Datei zusammen mit der Anwendung ausliefern können. Wenn zum Verteilen der erforderlichen Komponente ein einfacher Kopiervorgang ausreicht (z. B. wenn keine Abhängigkeiten bestehen), müssen Sie kein Paket erstellen. Stellen Sie nur sicher, dass die Datei im Setup enthalten oder auf Lokale Kopie eingestellt ist. (Die Copy-Eigenschaft der Datei in Eigenschaftenansicht sollte auf True festgelegt werden.)

Sie sollten weiterhin feststellen, ob ein Installationsprogramm verwendet werden muss. Verwenden Sie in diesem Fall ein Bootstrapperpaket.

Um ein neues Komponentenpaket zu erstellen, müssen folgende Dateien verfügbar sein:

  • Die verteilbare Komponente in Form einer EXE- oder MSI-Datei.

  • Das Produktmanifest, product.xml, das alle sprachneutralen Metadaten für das Paket enthält. Es enthält Metadaten, die für alle lokalisierten Versionen der verteilbaren Komponente gleich sind.

  • Das Paketmanifest, package.xml, das sprachspezifische Metadaten und in der Regel auch lokalisierte Fehlermeldungen enthält. Eine Komponente benötigt für jede lokalisierte Version dieser Komponente mindestens ein Paketmanifest.

Die Manifestdateien müssen manuell erstellt werden, und die darin enthaltenen Metadaten müssen dem Schema der Paketschemaelemente im Windows Software Development Kit (SDK) entsprechen. Die Schemareferenz finden Sie unter Referenz zum Produkt- und Paketschema. Das in Visual Studio integrierte Setup-Erstellungsprogramm überprüft die Manifestdateien bei der Erstellung.

Abhängigkeiten zwischen Paketen in diesen Manifesten geben Sie mit dem DependsOnProduct-Schemaelement an.

Dann müssen Sie die Produkt- und Paketmanifestdateien zusammen mit den verteilbaren Dateien in einen speziellen Ordner kopieren, den Visual Studio für verteilbare Pakete vorsieht:

\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages

Um ein Installationsprogramm zu schreiben, das eine verteilbare Komponente und deren Manifeste in diesen Ordner kopiert, können Sie den Pfad des Bootstrapper-Ordners programmgesteuert anhand des Werts Path in den folgenden Registrierungseinträgen ermitteln:

HKLM\Software\Microsoft\GenericBootstrapper\3.5

Jede verteilbare Komponente wird unter dem Paketverzeichnis in einem eigenen Unterordner angezeigt. Das Produktmanifest und die verteilbaren Dateien werden dann in diesen Unterordner eingefügt. Lokalisierte Versionen der Komponente werden zusammen mit den Paketmanifesten in Unterordnern eingefügt, die entsprechend dem Kulturnamen benannt sind (siehe Tabelle in CultureInfo).

Sobald diese Dateien in den Bootstrapper-Ordner kopiert wurden, werden diese automatisch in Visual Studio im Dialogfeld Erforderliche Komponenten angezeigt, sodass der Entwickler diese durch Aktivieren eines Kontrollkästchens auswählen kann.

Weitere Informationen zum Konfigurieren der Installation mittels Bootstrapper finden Sie im MSDN-Artikel Verwenden des Visual Studio 2005-Bootstrappers zum Starten der Installation.

Trennen von verteilbaren Bootstrapper-Paketen und Anwendungsinstallationen

Im Allgemeinen sollten Sie Komponenten, die Teil eines verteilbaren Bootstrapper-Pakets sind, von den Anwendungen trennen, die diese Komponenten verwenden. Beispielsweise können Sie mit einem Bootstrapper-Paket mit dem Namen Acme.DataWidgets.msi arbeiten, das die Komponente Acme.DataWidgets.dll enthält. Die Datei Acme.DataWidgets.dll sollte sich zur Entwicklungszeit nicht im Verzeichnis bindir des Projekts befinden und sollte nicht mit dem Installer-Paket der Anwendung bereitgestellt werden.

Aus diesem Grund wird empfohlen, Bootstrapper-Komponenten im GAC auf den Entwicklungscomputern zu installieren, am besten mit dem gleichen grundlegenden Installer für das verteilbare Bootstrapper-Paket. Dadurch wird verhindert, dass zur Entwicklungszeit Bootstrapper-Komponenten in das Verzeichnis bindir des Projekts kopiert werden. Darüber hinaus empfiehlt es sich, eine RedistList-Datei zu definieren, in der alle Assemblys beschrieben sind, die Teil des verteilbaren Bootstrapper-Pakets sind. Dadurch wird verhindert, dass Bootstrapper-Komponenten in Projekten zur Anwendungsbereitstellung eingeschlossen werden. Die RedistList-Datei muss nur auf Entwicklercomputern installiert sein.

Erstellen Sie hierzu im Verzeichnis .NET Framework (\WINDOWS\Microsoft.NET\Framework) im Ordner RedistList eine verteilbare Liste.

Die verteilbare Liste ist eine XML-Datei, deren Namen Sie mit dem folgenden Format festlegen sollten: Firmenname + Komponentenname + RedistList.xml. Beispiel: Wenn die Komponente "Datawidgets" heißt und von der Firma "Acme" stammt, nennen Sie die Datei "Acme.DataWidgets.RedistList.xml". Der Inhalt der verteilbaren Liste könnte in etwa so aussehen:

<?xml version="1.0" encoding="UTF-8"?>
<FileList Redist="Acme.DataWidgets" >
<File AssemblyName="Acme.DataGrid" Version="1.0.0.0" PublicKeyToken="b03f5f7f11d50a3a" Culture="neutral" ProcessorArchitecture="MSIL" InGAC="true" />
</FileList>

Hinzufügen von Paketen zum Dialogfeld "Erforderliche Komponenten"

Im Dialogfeld "Erforderliche Komponenten" können Sie vor der Installation auswählen, welche Komponenten für die Anwendung erforderlich sind. Visual Studio enthält mehrere standardmäßige erforderliche Komponenten. Sie können jedoch andere Komponenten von Microsoft oder Drittanbietern als erforderliche Komponenten hinzufügen. Dazu müssen Sie die Produkt- und Paketmanifeste wie an früherer Stelle beschrieben verfassen.

Im Dialogfeld Erforderliche Komponenten werden in der Liste Zu installierende erforderliche Komponenten auswählen die Pakete mit erforderlichen Komponenten angezeigt, die installiert werden können. Die Reihenfolge der Pakete in dieser Liste basiert auf den in den Manifesten angegebenen Abhängigkeiten und entspricht der Reihenfolge, in der die Pakete installiert werden.

Nachdem Sie dem Bootstrapper ein allgemeines Paket hinzugefügt haben, wird dieses im Dialogfeld Erforderliche Komponenten als MyPackage angezeigt. Visual Studio wählt keine Pakete für die Installation automatisch aus.

Für ClickOnce-Projekte wird von Visual Studio empfohlen, das .NET Framework für alle Projekttypen einzuschließen, indem Sie unter Zu installierende erforderliche Komponenten auswählen standardmäßig das Kontrollkästchen .NET Framework aktivieren.

Wenn es sich beim aktuellen Projekt um ein Setup- oder Websetup-Projekt handelt, wird bei Windows Installer-Projekten standardmäßig das Kontrollkästchen .NET Framework aktiviert. Wenn zum Erstellungszeitpunkt weder das .NET Framework- noch das Windows Installer-Paket ausgewählt sind, wird eine Buildwarnung ausgegeben.

Siehe auch

Aufgaben

Gewusst wie: Installieren von erforderlichen Komponenten mit einer ClickOnce-Anwendung

Konzepte

Voraussetzungen für die Bereitstellung (Visual Studio)

Referenz

Dialogfeld "Erforderliche Komponenten"

Referenz zum Produkt- und Paketschema

Weitere Ressourcen

https://msdn.microsoft.com/msdnmag/issues/04/10/bootstrapper/