Erstellen eines Produktmanifests

Zum Bereitstellen der erforderlichen Komponenten für Ihre Anwendung können Sie ein Bootstrapperpaket verwenden. Ein Bootstrapperpaket enthält eine einzelne Produktmanifestdatei, aber Paketmanifeste für alle Gebietsschemas. Das Paketmanifest enthält lokalisierungsspezifische Aspekte Ihres Pakets. Dazu gehören Zeichenfolgen, Endbenutzerlizenzverträge und die Sprachpakete.

Weitere Informationen zu Produktmanifesten finden Sie unter Vorgehensweise: Erstellen eines Produktmanifests.

Erstellen des Produktmanifests

So erstellen Sie das Produktmanifest

  1. Erstellen Sie ein Verzeichnis für das Bootstrapperpaket. In diesem Beispiel wird C:\package verwendet.

  2. Erstellen Sie in Visual Studio eine neue XML-Datei mit dem Namen product.xml und speichern Sie sie im Ordner C:\package.

  3. Fügen Sie den folgenden XML-Code 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="http://schemas.microsoft.com/developer/2004/01/bootstrapper"
    ProductCode="Custom.Bootstrapper.Package">
    
  4. Fügen Sie XML-Code hinzu, der angibt, dass das Paket eine Abhängigkeit hat. In diesem Beispiel wird eine Abhängigkeit von Microsoft Windows Installer 3.1 verwendet.

    <RelatedProducts>
        <DependsOnProduct Code="Microsoft.Windows.Installer.3.1" />
      </RelatedProducts>
    
  5. Fügen Sie XML-Code hinzu, der alle Dateien auflistet, die sich im Bootstrapperpaket befinden. In diesem Beispiel wird der Paketdateiname CorePackage.msi verwendet.

    <PackageFiles>
        <PackageFile Name="CorePackage.msi"/>
    </PackageFiles>
    
  6. Kopieren oder verschieben Sie die Datei CorePackage.msi in den Ordner C:\package.

  7. Fügen Sie XML-Code hinzu, der das Paket mithilfe von Bootstrapperbefehlen installiert. Der Bootstrapper fügt automatisch das Flag /qn zur .msi-Datei hinzu, die unbeaufsichtigt installiert wird. Wenn es sich bei der Datei um eine .exe handelt, führt der Bootstrapper die .exe-Datei mithilfe der Shell aus. Im folgenden XML-Code werden keine Argumente für CorePackage.msiangezeigt, sie können jedoch Befehlszeilenargumente in das Arguments-Attribut einfügen.

    <Commands>
        <Command PackageFile="CorePackage.msi" Arguments="">
    
  8. Fügen Sie den folgenden XML-Code hinzu, um zu überprü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>
    
  9. Fügen Sie XML-Code hinzu, der das Bootstrapperverhalten abhängig davon ändert, ob die Bootstrapperkomponente bereits installiert ist. Wenn die Komponente installiert ist, wird das Bootstrapperpaket nicht ausgeführt. Durch den folgenden XML-Code wird überprüft, ob der aktuelle Benutzer Administrator ist, da für diese Komponente Administratorrechte erforderlich sind.

    <InstallConditions>
        <BypassIf
           Property="IsMsiInstalled"
           Compare="ValueGreaterThan" Value="0"/>
        <FailIf Property="AdminUser"
            Compare="ValueNotEqualTo" Value="True"
            String="NotAnAdmin"/>
    </InstallConditions>
    
  10. Fügen Sie XML hinzu, um Exitcodes festzulegen, wenn die Installation erfolgreich ist und ein Systemneustart erforderlich ist. Der folgende XML-Code veranschaulicht die Exitcodes „Fail“ und „FailReboot“, die angeben, dass der Bootstrapper die Installation von Paketen nicht fortsetzen wird.

    <ExitCodes>
        <ExitCode Value="0" Result="Success"/>
        <ExitCode Value="1641" Result="SuccessReboot"/>
        <ExitCode Value="3010" Result="SuccessReboot"/>
        <DefaultExitCode Result="Fail" String="GeneralFailure"/>
    </ExitCodes>
    
  11. Fügen Sie den folgenden XML-Code hinzu, um den Abschnitt für Bootstrapperbefehle zu beenden.

        </Command>
    </Commands>
    
  12. Verschieben Sie den Ordner C:\package in das Bootstrapperverzeichnis von Visual Studio. Für ältere Versionen von 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="http://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 Property="IsMsiInstalled"
      Product="{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>