Gewusst wie: Erstellen eines Produktmanifests
Zur Bereitstellung der erforderlichen Komponenten für die Anwendung können Sie ein Bootstrapperpaket erstellen.Ein Bootstrapperpaket enthält eine einzelne Produktmanifestdatei, aber ein Paketmanifest für jedes Gebietsschema.Das Paketmanifest enthält lokalisierungsspezifische Aspekte des Pakets.Dies schließt Zeichenfolgen, Software-Lizenzbedingungen und die Language Packs ein.
Weitere Informationen zu Produktmanifesten finden Sie unter Gewusst wie: Erstellen eines Paketmanifests.
Erstellen des Produktmanifests
So erstellen Sie das Produktmanifest
Erstellen Sie ein Verzeichnis für das Bootstrapperpaket.In diesem Beispiel wird der Pfad "C:\package" verwendet.
Erstellen Sie in Visual Studio eine XML-Datei mit dem Namen product.xml, und speichern Sie sie im Ordner "C:\package".
Fügen Sie das folgende XML-Element hinzu, um den XML-Namespace und den Produktcode für das Paket zu beschreiben.Ersetzen Sie den Produktcode durch einen eindeutigen Bezeichner für das Paket.
<Product xmlns="https://schemas.microsoft.com/developer/2004/01/bootstrapper" ProductCode="Custom.Bootstrapper.Package">
Fügen Sie ein XML-Element hinzu, um anzugeben, dass das Paket eine Abhängigkeit besitzt.In diesem Beispiel wird eine Abhängigkeit von Microsoft Windows Installer 3.1 verwendet.
<RelatedProducts> <DependsOnProduct Code="Microsoft.Windows.Installer.3.1" /> </RelatedProducts>
Fügen Sie ein XML-Element hinzu, um alle Dateien aufzuführen, die im Bootstrapperpaket enthalten sind.In diesem Beispiel wird für die Paketdatei der Name "CorePackage.msi" verwendet.
<PackageFiles> <PackageFile Name="CorePackage.msi"/> </PackageFiles>
Kopieren oder verschieben Sie die Datei "CorePackage.msi" in den Ordner "C:\package".
Fügen Sie ein XML-Element hinzu, um das Paket mithilfe von Bootstrapperbefehlen zu installieren.Der Bootstrapper fügt der MSI-Datei automatisch das /qn-Kennzeichen hinzu, die automatisch installiert wird.Handelt es sich um eine EXE-Datei, wird vom Bootstrapper die EXE-Datei mithilfe der Shell ausgeführt.Das folgende XML-Element zeigt keine Argumente für "CorePackage.msi". Sie können aber ein Befehlszeilenargument in das Attribut für Argumente ablegen.
<Commands> <Command PackageFile="CorePackage.msi" Arguments="">
Fügen Sie das folgende XML-Element hinzu, um zu prüfen, ob dieses Bootstrapperpaket installiert ist.Ersetzen Sie den Produktcode durch die GUID für die weitervertreibbare Komponente.
<InstallChecks> <MsiProductCheck Property="IsMsiInstalled" Product="{XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}"/> </InstallChecks>
Fügen Sie ein XML-Element hinzu, um das Bootstrapperverhalten in Abhängigkeit vom Installationsstatus der Bootstrapperkomponente (bereits installiert, nicht installiert) zu ändern.Ist die Komponente installiert, wird das Bootstrapperpaket nicht ausgeführt.Mit dem folgenden XML-Element wird überprüft, ob der aktuelle Benutzer Administrator ist, da diese Komponente Administratorrechte erfordert.
<InstallConditions> <BypassIf Property="IsMsiInstalled" Compare="ValueGreaterThan" Value="0"/> <FailIf Property="AdminUser" Compare="ValueNotEqualTo" Value="True" String="NotAnAdmin"/> </InstallConditions>
Fügen Sie ein XML-Element hinzu, um Exitcodes festzulegen, wenn die Installation erfolgreich war und ein Neustart erforderlich ist.Mit dem folgenden XML-Element werden die Fehler- und FailReboot-Exitcodes veranschaulicht, durch die angegeben wird, dass der Bootstrapper keine weiteren Pakete installiert.
<ExitCodes> <ExitCode Value="0" Result="Success"/> <ExitCode Value="1641" Result="SuccessReboot"/> <ExitCode Value="3010" Result="SuccessReboot"/> <DefaultExitCode Result="Fail" String="GeneralFailure"/> </ExitCodes>
Fügen Sie das folgende XML-Element hinzu, um den Abschnitt für Bootstrapperbefehle zu beenden.
</Command> </Commands>
Verschieben Sie den Ordner "C:\package" in das Bootstrapperverzeichnis von Visual Studio.In Visual Studio 2010 ist dies das Verzeichnis "\Programme\Microsoft SDKs\Windows\v7 .0A \Bootstrapper\Packages".
Beispiel
Das Produktmanifest enthält Installationsanweisungen für benutzerdefinierte erforderliche Komponenten.
<?xml version="1.0" encoding="utf-8" ?>
<Product
xmlns="https://schemas.microsoft.com/developer/2004/01/bootstrapper"
ProductCode="Custom.Bootstrapper.Package">
<RelatedProducts>
<DependsOnProduct Code="Microsoft.Windows.Installer.3.1" />
</RelatedProducts>
<PackageFiles>
<PackageFile Name="CorePackage.msi"/>
</PackageFiles>
<InstallChecks>
<MsiProductCheck Product="IsMsiInstalled"
Property="{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}"/>
</InstallChecks>
<Commands>
<Command PackageFile="CorePackage.msi" Arguments="">
<InstallConditions>
<BypassIf Property="IsMsiInstalled"
Compare="ValueGreaterThan" Value="0"/>
<FailIf Property="AdminUser"
Compare="ValueNotEqualTo" Value="True"
String="NotAnAdmin"/>
</InstallConditions>
<ExitCodes>
<ExitCode Value="0" Result="Success"/>
<ExitCode Value="1641" Result="SuccessReboot"/>
<ExitCode Value="3010" Result="SuccessReboot"/>
<DefaultExitCode Result="Fail" String="GeneralFailure"/>
</ExitCodes>
</Command>
</Commands>
</Product>