Erstellen von Bootstrapperpaketen

Das Setupprogramm ist ein generisches Installationsprogramm, das für die Ermittlung und die Installation von weitervertreibbaren Komponenten wie Windows Installer (MSI-Format) und ausführbaren Programmen konfiguriert werden kann. Das Installationsprogramm wird auch als Bootstrapper bezeichnet. Der Bootstrapper wird mithilfe einer Reihe von XML-Manifesten programmiert, mit denen die Metadaten zur Verwaltung der Komponenteninstallation angegeben werden. Jede weitervertreibbare Komponente oder Voraussetzung, die im Dialogfeld Voraussetzungen für ClickOnce angezeigt wird, ist ein Bootstrapperpaket. Bei einem Bootstrapperpaket handelt es sich um eine Gruppe von Verzeichnissen und Dateien, die Manifestdateien enthalten, mit denen beschrieben wird, wie die erforderliche Komponente installiert werden muss.

Der Bootstrapper ermittelt zunächst, ob erforderliche Komponenten bereits installiert sind. Ist dies nicht der Fall, werden vom Bootstrapper die Lizenzverträge angezeigt. Nachdem der Endbenutzer die Lizenzverträge akzeptiert hat, beginnt die Installation der erforderlichen Komponenten. Wurden alle erforderlichen Komponenten ermittelt, wird direkt das Installationsprogramm der Anwendung gestartet.

Erstellen benutzerdefinierter Bootstrapperpakete

Sie können die Bootstrappermanifeste mit dem XML-Editor in Visual Studio generieren. Ein Beispiel für das Erstellen eines Bootstrapperpakets finden Sie unter Exemplarische Vorgehensweise: Erstellen eines benutzerdefinierten Bootstrappers zum Anzeigen einer Privatsphäre-Eingabeaufforderung.

Um ein Bootstrapperpaket zu erstellen, müssen Sie ein Produktmanifest und für jede lokalisierte Version einer Komponente auch ein Paketmanifest erstellen.

  • Das Produktmanifest, product.xml, enthält alle sprachneutralen Metadaten für das Paket. Es enthält Metadaten, die für alle lokalisierten Versionen der verteilbaren Komponente gleich sind. Informationen zum Erstellen dieser Datei finden Sie unter Vorgehensweise: Erstellen eines Produktmanifests.

  • Das Paketmanifest, package.xml, enthält sprachspezifische Metadaten und in der Regel auch lokalisierte Fehlermeldungen. Eine Komponente benötigt für jede lokalisierte Version dieser Komponente mindestens ein Paketmanifest. Informationen zum Erstellen dieser Datei finden Sie unter Vorgehensweise: Erstellen eines Paketmanifests.

Nachdem diese Dateien erstellt wurden, platzieren Sie die Produktmanifestdatei in einen entsprechend benannten Ordner für den benutzerdefinierten Bootstrapper. Die Paketmanifestdatei muss in einem Ordner, der dem Gebietsschema entsprechend benannt wurde, abgelegt werden. Wenn die Paketmanifestdatei z. B. für die Neuverteilung in englischer Sprache vorgesehen ist, legen Sie die Datei in einen Ordner mit der Bezeichnung "en" ab. Wiederholen Sie diesen Prozess für jedes Gebietsschema, z. B. "ja" für Japanisch und "de" für Deutsch. Das abschließende benutzerdefinierte Bootstrapperpaket könnte beispielsweise über die folgende Ordnerstruktur verfügen.

CustomBootstrapperPackage
  product.xml
  CustomBootstrapper.msi
  de
    eula.rtf
    package.xml
  en
    eula.rtf
    package.xml
  ja
    eula.rtf
    package.xml

Nun kopieren Sie die weitervertreibbaren Dateien in den Bootstrapperordner. Weitere Informationen finden Sie unter Vorgehensweise: Erstellen eines lokalisierten Bootstrappakets.

*\Program Files (x86)\Microsoft SDKs\ClickOnce Bootstrapper\Packages*

oder

*<VS Install Path>\MSBuild\Microsoft\VisualStudio\BootstrapperPackages*

Hinweis

Der oben unter dem Visual Studio-Installationspfad aufgeführte Pfad funktioniert ab dem Release Visual Studio 2019 Update 7.

Sie können auch den Speicherort des Bootstrapperordners mithilfe des Werts Path (Pfad) im folgenden Registrierungsschlüssel bestimmen:

*HKLM\Software\Microsoft\GenericBootstrapper*

Auf 64-Bit-Systemen verwenden Sie den folgenden Registrierungsschlüssel:

*HKLM\Software\Wow6432Node\Microsoft\GenericBootstrapper*

Jede verteilbare Komponente wird unter dem Paketverzeichnis in einem eigenen Unterordner angezeigt. Das Produktmanifest und die weitervertreibbaren Dateien werden dann in diesem Unterordner abgelegt. Lokalisierte Versionen der Komponente und Paketmanifeste müssen in Unterordner eingefügt werden, die entsprechend dem Kulturnamen benannt sind.

Nachdem diese Dateien in den Bootstrapperordner kopiert wurden, wird das Bootstrapperpaket in Visual Studio automatisch im Dialogfeld Erforderliche Komponenten angezeigt. Wird das benutzerdefinierte Bootstrapperpaket nicht angezeigt, schließen Sie das Dialogfeld Erforderliche Komponenten, und öffnen Sie es erneut. Weitere Informationen finden Sie unter Dialogfeld „Erforderliche Komponenten“.

In der folgenden Tabelle werden die Eigenschaften angezeigt, die automatisch vom Bootstrapper eingetragen werden.

Eigenschaft BESCHREIBUNG
ApplicationName Der Namen der Anwendung.
ProcessorArchitecture Der Prozessor und die Bits pro Wort für die Plattform, auf die eine ausführbare Datei zielt. Folgende Werte sind gültig:

– Intel
– IA64
– AMD64
VersionNT Die Versionsnummer für die Windows-Betriebssysteme. Die Syntax der Version lautet "Major.Minor.ServicePack".
VersionMSI Die Version der Windows Installer-Assembly („msi.dll“), die während der Installation ausgeführt wird.
AdminUser Diese Eigenschaft wird festgelegt, wenn der Benutzer über Administratorrechte verfügt. Gültige Werte sind "true" und "false".
InstallMode Der Installationsmodus gibt an, von welchem Speicherort die Komponente installiert werden muss. Folgende Werte sind gültig:

– HomeSite: Die Voraussetzungen werden von der Website des Anbieters installiert.
– SpecificSite: Die Voraussetzungen werden vom ausgewählten Speicherort installiert.
– SameSite: Die Voraussetzungen werden vom gleichen Speicherort wie die Anwendung installiert.

Trennen von weitervertreibbaren Komponenten von Anwendungsinstallationen

Sie können die Bereitstellung von verteilbaren Dateien in Setupprojekten auch deaktivieren. Erstellen Sie hierzu im Ordner "RedistList" im Verzeichnis von .NET Framework eine verteilbare Liste:

%ProgramFiles%\Microsoft.NET\RedistList

Die Liste der weitervertreibbaren Komponenten ist eine XML-Datei, die entsprechend dem folgenden Format benannt wird: <Unternehmensname>.<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>