Manuelles Erstellen einer App-Installer-Datei

In diesem Artikel wird beschrieben, wie Sie manuell eine App-Installer-Datei erstellen, die eine zugehörige Gruppe mit Funktionen zum automatischen Aktualisieren und Reparieren definiert. Ein zusammengehöriges Set ist keine einzelne Entität, sondern eine Kombination aus einem Hauptpaket und optionalen Paketen.

Um einen verwandten Satz als eine Entität installieren zu können, müssen wir in der Lage sein, das Hauptpaket und das optionale Paket als eins anzugeben. Dazu müssen wir eine XML-Datei mit der Erweiterung ".appinstaller " erstellen, um einen zugehörigen Satz zu definieren. Der App-Installer verwendet die Datei *.appinstaller und ermöglicht es dem Benutzer, alle definierten Pakete mit einem einzigen Klick zu installieren.

Während der Bereitstellung wird die App-Installer-Datei Folgendes tun:

  • Das Windows-App-Paket, auf das im Attribut URI des < MainPackage > Elements verwiesen wird, überprüft die Name, Publisher und Version der Windows-App-Paketattribute des Zielsystems. Wenn das Package/Identity-Element im Windows App-Paketmanifest nicht übereinstimmt, schlägt die Installation fehl.
  • Erstellen Sie einen Verweis auf die Update- und Reparatur-URIs für die Paketfamilie.

So erstellen Sie eine App-Installer-Datei

Um den zugehörigen Satz als eine Entität zu verteilen, müssen Sie eine App-Installer-Datei erstellen, die die Elemente enthält, die für dieses App-Installer-Schema erforderlich sind.

  1. Erstellen Sie die *.AppInstaller-Datei.
  2. Geben Sie die Attribute der App-Installer-Datei an.
  3. Geben Sie das Hauptpaket der Windows-App an.
  4. Geben Sie das zugehörige optionale Paket an.
  5. Spezifizieren Sie das Abhängigkeitspaket des Windows App Frameworks.
  6. Geben Sie die Updateeinstellungen an.
  7. Geben Sie die Aktualisierungs-URI-Pfade an.
  8. Geben Sie die Reparatur-URI-Pfade an.
Beispiel für eine App-Installer-Datei

Nachdem Sie die oben aufgeführten Schritte ausgeführt haben, haben Sie erfolgreich eine App-Installer-Datei erstellt, die etwa wie folgt aussieht:

<?xml version="1.0" encoding="utf-8"?>
<AppInstaller
    xmlns="http://schemas.microsoft.com/appx/appinstaller/2017/2"
    Version="1.0.0.0"
    Uri="http://mywebservice.azurewebsites.net/appset.appinstaller" >

    <MainBundle
        Name="Contoso.MainApp"
        Publisher="CN=Contoso"
        Version="2.23.12.43"
        Uri="http://mywebservice.azurewebsites.net/mainapp.msixbundle" />

    <OptionalPackages>
        <Bundle
            Name="Contoso.OptionalApp1"
            Publisher="CN=Contoso"
            Version="2.23.12.43"
            Uri="http://mywebservice.azurewebsites.net/OptionalApp1.msixbundle" />

        <Bundle
            Name="Contoso.OptionalApp2"
            Publisher="CN=Contoso"
            Version="2.23.12.43"
            Uri="http://mywebservice.azurewebsites.net/OptionalApp2.msixbundle" />

        <Package
            Name="Fabrikam.OptionalApp3"
            Publisher="CN=Fabrikam"
            Version="10.34.54.23"
            Uri="http://mywebservice.azurewebsites.net/OptionalApp3.msix"
            ProcessorArchitecture="x64" />
    </OptionalPackages>

    <UpdateURIs>
        <UpdateURI>http://mywebservice.azurewebsites.net/appset.appinstaller</UpdateURI>
        <UpdateURI>http://mywebservice2.azurewebsites.net/appset.appinstaller</UpdateURI>
    </UpdateURIs>

    <RepairURIs>
        <RepairURI>http://mywebservice.azurewebsites.net/appset.appinstaller</RepairURI>
        <RepairURI>http://mywebservice2.azurewebsites.net/appset.appinstaller</RepairURI>
    </RepairURIs>

    <UpdateSettings>
        <OnLaunch HoursBetweenUpdateChecks="0"/>   
    </UpdateSettings>

</AppInstaller>

Schritt 1: Erstellen der Datei "*.appinstaller"

Erstellen Sie mit einem Text-Editor (Notepad.exe) eine neue Datei mit der Dateinamenerweiterung *. AppInstaller

Anleitung:
  1. Öffnen Sie das Startmenü.
  2. Geben Sie Folgendes ein: notepad.exe.
  3. Öffnen Sie das Menü "Datei ".
  4. Wählen Sie im Dropdownmenü "Speichern unter " aus.

Schritt 2: Hinzufügen der Basisvorlage

Fügen Sie das AppInstaller Element in Ihre App-Installer-Datei ein und vermerken Sie die Version, den Pfad und den Netzwerkspeicherort Ihrer App-Installer-Datei. Die Informationen im AppInstaller-Element werden beim Installieren der zugehörigen Windows-Apps genutzt.

Element BESCHREIBUNG
xmlns Der XML-Namespace
Version Die Version der App-Installer-Datei in einer Quad-Dotted-Notation (1.0.0.0).
URI Ein URI-Pfad zur aktuellen App Installer-Datei, auf die vom Gerät zugegriffen werden kann.
Anleitung:
  1. Öffnen Sie die in Schritt 1 erstellte Datei.

  2. Kopieren Sie den folgenden XML-Inhalt in Ihr *. AppInstaller-Datei .

    <?xml version="1.0" encoding="utf-8"?>
    <AppInstaller
        xmlns="http://schemas.microsoft.com/appx/appinstaller/2021"
        Version=""
        Uri="" >
    </AppInstaller>
    
  3. Aktualisieren des Version Attributs mit der Version Ihrer App Installer-Datei

  4. Aktualisieren Sie das URI-Attribut mit dem Netzwerkspeicherort, von dem aus auf diese *.AppInstaller-Datei zugegriffen werden kann.

Schritt 3: Hinzufügen der Hauptpaketinformationen

Die <MainPackage> und <MainBundle> werden verwendet, um die primäre Windows App zu identifizieren, die mit der App Installer-Datei installiert wird. Die <MainPackage> wird verwendet, wenn das Windows App-Installationsprogramm entweder ein *.msix oder *.appx ist. Verwenden Sie den <MainBundle>, wenn das Windows App-Installationsprogramm ein gebündeltes Windows App Installer ist, mit einer Erweiterung von *.msixbundle oder *.appxbundle.

Element BESCHREIBUNG
Name Der Name der primären Anwendung, die über die App-Installer-Datei verteilt wird. Dies finden Sie, indem Sie das folgende PowerShell-Cmdlet ausführen: $(Get-AppxPackage [AppName]).Name.
Verleger Der kanonische Name des Herausgeberzertifikats, das zum Signieren des primären Windows App-Installers verwendet wird. Dies kann mithilfe des folgenden PowerShell-Cmdlets gefunden werden: $(Get-AppxPackage [AppName]).Publisher.
Version Die Version des primären Windows App-Installer in einer vierfach punktierten Notation (1.0.0.0). Dies finden Sie, indem Sie das folgende PowerShell-Cmdlet ausführen: $(Get-AppxPackage [AppName]).Version.
Prozessorarchitektur Die Architektur, auf der das primäre Windows-App-Installationsprogramm installiert wird.
URI (Uniform Resource Identifier) Der URI-Pfad zum primären Windows App-Installationsmedium.

Die Informationen im <MainBundle>- oder <MainPackage>-Attribut sollten mit dem Package/Identity-Element im App-Bündelmanifest bzw. App-Paketmanifest übereinstimmen.

Windows-App-Installer

Wenn es sich bei dem Haupt-App-Paket um eine MSIX- oder .appx-Datei handelt, verwenden Sie <MainPackage>wie unten dargestellt. Achten Sie darauf, die ProcessorArchitecture einzuschließen, da sie für Nicht-Bundle-Pakete obligatorisch ist.

<?xml version="1.0" encoding="utf-8"?>
<AppInstaller
    xmlns="http://schemas.microsoft.com/appx/appinstaller/2021"
    Version="1.0.0.0"
    Uri="http://mywebservice.azurewebsites.net/appset.appinstaller" >

    <MainPackage
        Name="Contoso.MainApp"
        Publisher="CN=Contoso"
        Version="2.23.12.43"
        ProcessorArchitecture="x64"
        Uri="http://mywebservice.azurewebsites.net/mainapp.msix" />

</AppInstaller>
Windows-App-Bundle-Installer

Wenn es sich bei dem Haupt-App-Paket um eine .msixbundle-, .appxbundle- oder .datei handelt, verwenden Sie <MainBundle> anstelle von <MainPackage>, wie unten gezeigt. Für Bundles ist ProcessorArchitecture nicht erforderlich.

<?xml version="1.0" encoding="utf-8"?>
<AppInstaller
    xmlns="http://schemas.microsoft.com/appx/appinstaller/2021"
    Version="1.0.0.0"
    Uri="http://mywebservice.azurewebsites.net/appset.appinstaller" >

    <MainBundle
        Name="Contoso.MainApp"
        Publisher="CN=Contoso"
        Version="2.23.12.43"
        Uri="http://mywebservice.azurewebsites.net/mainapp.msixbundle" />

</AppInstaller>

Schritt 4: Hinzufügen der optionalen Pakete

Ähnlich wie das Attribut des Haupt-App-Pakets sollte das untergeordnete Element innerhalb des <OptionalPackages>-Attributs <Package> sein, wenn das optionale Paket entweder ein App-Paket oder ein App-Bündel sein kann, oder entsprechend <Bundle>. Die Paketinformationen in den untergeordneten Elementen sollten mit dem Identitätselement im Paket- oder Paketmanifest übereinstimmen.

Element BESCHREIBUNG
Name Der Name der optionalen Anwendung, die über die App-Installer-Datei verteilt wird. Dies finden Sie, indem Sie das folgende PowerShell-Cmdlet ausführen: $(Get-AppxPackage [AppName]).Name.
Herausgeber Der kanonische Name des Herausgeberzertifikats, das zum Signieren des optionalen Windows App-Installers verwendet wird. Dies kann mithilfe des folgenden PowerShell-Cmdlets gefunden werden: $(Get-AppxPackage [AppName]).Publisher.
Version Die Version des optionalen Windows-App-Installers in einer vierteiligen Punktnotation (1.0.0.0). Dies finden Sie, indem Sie das folgende PowerShell-Cmdlet ausführen: $(Get-AppxPackage [AppName]).Version.
Prozessorarchitektur Die Architektur, auf der das optionale Windows-App-Installationsprogramm installiert wird.
URI (Uniform Resource Identifier) Der URI-Pfad zum primären Windows App-Installationsmedium.
<?xml version="1.0" encoding="utf-8"?>
<AppInstaller
    xmlns="http://schemas.microsoft.com/appx/appinstaller/2021"
    Version="1.0.0.0"
    Uri="http://mywebservice.azurewebsites.net/appset.appinstaller" >

    <MainBundle
        Name="Contoso.MainApp"
        Publisher="CN=Contoso"
        Version="2.23.12.43"
        Uri="http://mywebservice.azurewebsites.net/mainapp.msixbundle" />

    <OptionalPackages>
        <Bundle
            Name="Contoso.OptionalApp1"
            Publisher="CN=Contoso"
            Version="2.23.12.43"
            Uri="http://mywebservice.azurewebsites.net/OptionalApp1.msixbundle" />

        <Package
            Name="Fabrikam.OptionalApp3"
            Publisher="CN=Fabrikam"
            Version="10.34.54.23"
            ProcessorArchitecture="x64"
            Uri="http://mywebservice.azurewebsites.net/OptionalApp3.msix" />

    </OptionalPackages>

</AppInstaller>

Schritt 5: Hinzufügen von Abhängigkeiten

Im Abhängigkeitselement können Sie die erforderlichen Frameworkpakete für das Hauptpaket oder die optionalen Pakete angeben.

Element BESCHREIBUNG
Name Der Name der Abhängigkeitsanwendung, an die über die App-Installer-Datei verteilt wird. Dies finden Sie, indem Sie das folgende PowerShell-Cmdlet ausführen: $(Get-AppxPackage [AppName]).Name.
Verlag Der kanonische Name des Herausgeberzertifikats, das zum Signieren des Windows-App-Installers verwendet wird. Dies kann mithilfe des folgenden PowerShell-Cmdlets gefunden werden: $(Get-AppxPackage [AppName]).Publisher.
Version Die Version des Windows-App-Installers als Abhängigkeit in vierteiliger Notierung (1.0.0.0). Dies finden Sie, indem Sie das folgende PowerShell-Cmdlet ausführen: $(Get-AppxPackage [AppName]).Version.
Prozessorarchitektur Die Architektur, auf der das Abhängigkeits-Windows App-Installationsprogramm installiert wird.
URI (Uniform Resource Identifier) Der URI-Pfad zu den Installationsmedien der Windows-App-Abhängigkeiten.
<?xml version="1.0" encoding="utf-8"?>
<AppInstaller
    xmlns="http://schemas.microsoft.com/appx/appinstaller/2021"
    Version="1.0.0.0"
    Uri="http://mywebservice.azurewebsites.net/appset.appinstaller" >

    <MainBundle
        Name="Contoso.MainApp"
        Publisher="CN=Contoso"
        Version="2.23.12.43"
        Uri="http://mywebservice.azurewebsites.net/mainapp.msixbundle" />

    <Dependencies>
        <Package 
            Name="Microsoft.VCLibs.140.00" 
            Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" 
            Version="14.0.24605.0" ProcessorArchitecture="x86" Uri="http://foobarbaz.com/fwkx86.appx" />
        <Package 
            Name="Microsoft.VCLibs.140.00" 
            Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" 
            Version="14.0.24605.0" 
            ProcessorArchitecture="x64" 
            Uri="http://foobarbaz.com/fwkx64.appx" />
    </Dependencies>

</AppInstaller>

Schritt 6: Hinzufügen der Updateeinstellung

Die App Installer-Datei kann auch die Updateeinstellung angeben, sodass die zugehörigen Sätze automatisch aktualisiert werden können, wenn eine neuere App-Installer-Datei veröffentlicht wird. <UpdateSettings ist ein optionales> Element. In <UpdateSettings> gibt die Option "OnLaunch" an, dass Updateüberprüfungen beim Starten der App vorgenommen werden sollen, und HoursBetweenUpdateChecks="12" gibt an, dass alle 12 Stunden eine Aktualisierungsprüfung durchgeführt werden soll. Wenn HoursBetweenUpdateChecks nicht angegeben ist, beträgt das Standardintervall, das zum Überprüfen auf Updates verwendet wird, 24 Stunden. Weitere Arten von Updates, z. B. Hintergrundupdates, finden Sie im Schema "Updateeinstellungen ". Weitere Arten von On-Launch-Updates wie Updates mit einer Eingabeaufforderung finden Sie im OnLaunch-Schema

Elemente BESCHREIBUNG
StundenZwischenAktualisierungsprüfungen Definiert die minimale Lücke in Windows App-Updateprüfungen.
Aktualisierungsblockierungsaktivierung Definiert die Benutzeroberfläche, wenn ein App-Update überprüft wird.
Eingabeaufforderung einblenden Definiert, ob ein Fenster angezeigt wird, wenn Updates installiert werden, und wann Updates überprüft werden.
AktualisierungVonJederVersionErzwingen Gibt an, dass die nächste Version der Anwendung eine neuere oder ältere Version sein könnte. Bei „True“ werden alle Versionen für beide Optionen installiert, bei „False“ (Standardeinstellung) hingegen nur neue Versionen.
<?xml version="1.0" encoding="utf-8"?>
<AppInstaller
    xmlns="http://schemas.microsoft.com/appx/appinstaller/2021"
    Version="1.0.0.0"
    Uri="http://mywebservice.azurewebsites.net/appset.appinstaller" >

    <MainBundle
        Name="Contoso.MainApp"
        Publisher="CN=Contoso"
        Version="2.23.12.43"
        Uri="http://mywebservice.azurewebsites.net/mainapp.msixbundle" />

    <UpdateSettings>
        <OnLaunch 
            HoursBetweenUpdateChecks="12"
            UpdateBlocksActivation="true"
            ShowPrompt="true" />
        <AutomaticBackgroundTask />
        <ForceUpdateFromAnyVersion>true</ForceUpdateFromAnyVersion>
    </UpdateSettings>

</AppInstaller>

Schritt 7: Hinzufügen von Einstellungen für die automatische Aktualisierung

Von Bedeutung

Für die folgenden Einstellungen ist die Schemaversion 2021 in Ihrer .appinstaller-Datei und Windows 10, Version 2004 (Build 19041) oder höher erforderlich.

Diese Einstellungen ermöglichen das Aktualisieren der Windows App aus dem App Installer-URI, wobei die im vorherigen Schritt festgelegten Konfigurationen eingehalten werden. Die in diesem Schritt konfigurierten Update-URIs dienen als Fallback-URIs, die verwendet werden können, wenn auf den ursprünglichen App Installer-URI nicht mehr zugegriffen werden kann. Maximal 10 Update-URIs können für jede Windows App konfiguriert werden.

Die Update-URIs müssen auf App-Installer-Dateien abzielen.

Hinweis

Diese Einstellungen funktionieren nur, wenn das Schema als 2021 oder höher konfiguriert ist.

<?xml version="1.0" encoding="utf-8"?>
<AppInstaller
    xmlns="http://schemas.microsoft.com/appx/appinstaller/2021"
    Version="1.0.0.0"
    Uri="http://mywebservice.azurewebsites.net/appset.appinstaller" >

    <MainBundle
        Name="Contoso.MainApp"
        Publisher="CN=Contoso"
        Version="2.23.12.43"
        Uri="http://mywebservice.azurewebsites.net/mainapp.msixbundle" />

    <UpdateSettings>
        <OnLaunch 
            HoursBetweenUpdateChecks="12" />
    </UpdateSettings>

    <UpdateUris>
        <UpdateUri>https://www.contoso.com/Installers/MainApp.AppInstaller</UpdateUri>
        <UpdateUri>\\ServerName\Share\Installers\MainApp.AppInstaller</UpdateUri>
    </UpdateUris>

</AppInstaller>

Schritt 8: Hinzufügen von Einstellungen für die automatische Reparatur

Von Bedeutung

Für die folgenden Einstellungen ist die Schemaversion 2021 in Ihrer .appinstaller-Datei und Windows 10, Version 2004 (Build 19041) oder höher erforderlich.

Diese Einstellungen aktivieren die Reparatur der Windows-App, wenn sie manipuliert wurde. Das Quellinstallationsprogramm, das zum Reparieren der App verwendet wird, kann mithilfe der <RepairURIs> Eigenschaft konfiguriert werden. Die Windows-App versucht, sich basierend auf dem App Installer-URI zu reparieren. Wenn nicht zugegriffen werden kann, verwendet sie die Reparatur-URIs, um eine Reparaturquelle zu identifizieren. Für jede Windows App können maximal 10 Reparatur-URIs konfiguriert werden.

Die Reparatur-URIs können auf Windows Apps oder App-Installer-Dateien abzielen. Diese Einstellung erfordert nicht, dass die Windows App mithilfe einer App-Installer-Datei installiert wurde.

<?xml version="1.0" encoding="utf-8"?>
<AppInstaller
    xmlns="http://schemas.microsoft.com/appx/appinstaller/2021"
    Version="1.0.0.0"
    Uri="http://mywebservice.azurewebsites.net/appset.appinstaller" >

    <MainBundle
        Name="Contoso.MainApp"
        Publisher="CN=Contoso"
        Version="2.23.12.43"
        Uri="http://mywebservice.azurewebsites.net/mainapp.msixbundle" />

    <UpdateSettings>
        <OnLaunch 
            HoursBetweenUpdateChecks="12" />
    </UpdateSettings>

    <RepairUris>
        <RepairUri></RepairUri>
        <RepairUri></RepairUri>
    </RepairUris>

</AppInstaller>

Alle Details zum XML-Schema finden Sie in der Referenz zur App-Installer-Datei.

Hinweis

Der Dateityp "App Installer" ist neu in Windows 10, Version 1709 (das Windows 10 Fall Creators Update). Es gibt keine Unterstützung für die Bereitstellung von Windows 10 Apps mit einer App Installer-Datei in früheren Versionen von Windows 10. Das element HoursBetweenUpdateChecks ist ab Windows 10 Version 1803 verfügbar.