Freigeben über


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 im URI-Attribut des <-MainPackage-Elements > referenzierte Windows-App-Paket wird die Name-, Publisher- und Version-Zielattribute des Windows-App-Pakets überprüfen. 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. Geben Sie das Abhängigkeitspaket für Windows-App-Framework an.
  6. Geben Sie die Update-URI-Pfade an.
  7. Geben Sie die Reparatur-URI-Pfade an.
  8. Geben Sie die Updateeinstellungen 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

Hilfe & 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.
Hilfe & 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. Dies <MainPackage> wird verwendet, wenn das Windows-App-Installationsprogramm entweder ein *.msix oder *.appx ist. Verwenden Sie, <MainBundle> wenn das Windows-App-Installationsprogramm ein gebündeltes Windows-App-Installationsprogramm mit einer Erweiterung von *.msixbundle oder *.appxbundle ist.

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.
Herausgeber Der kanonische Name des Herausgeberzertifikats, das zum Signieren des primären Windows-App-Installationsprogramms verwendet wird. Dies finden Sie, indem Sie das folgende PowerShell-Cmdlet ausführen: $(Get-AppxPackage [AppName]).Publisher.
Version Die Version des primären Windows-App-Installers in einer vierfach gepunkteten 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-Paketinstallationsprogramm

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-Installationsprogramms verwendet wird. Dies finden Sie, indem Sie das folgende PowerShell-Cmdlet ausführen: $(Get-AppxPackage [AppName]).Publisher.
Version Die Version des optionalen Windows-App-Installers in einer vierfach gepunkteten 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 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.
Herausgeber Der kanonische Name des Herausgeberzertifikats, das zum Signieren der Abhängigkeit „Windows-App-Installer“ verwendet wird. Dies finden Sie, indem Sie das folgende PowerShell-Cmdlet ausführen: $(Get-AppxPackage [AppName]).Publisher.
Version Die Version der Abhängigkeit „Windows-App-Installer“ in einer Quad-Dotted-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 die Abhängigkeit „Windows-App-Installer“ installiert wird.
URI (Uniform Resource Identifier) Der URI-Pfad zur Abhängigkeit „Windows-App-Installer“.
<?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 bei Windows-App-Updateüberprüfungen.
Aktualisierungsblockierungsaktivierung Definiert die Benutzeroberfläche, wenn ein App-Update überprüft wird.
Eingabeaufforderung anzeigen 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

Die folgenden Einstellungen sind nur verfügbar, wenn Sie das 2021-Schema auf einem Windows-Insider-Build von Windows 10 verwenden.

Windows Apps, die mit einer App-Installer-Datei installiert wurden, aktualisieren standardmäßig ihre Windows-App über den 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-URI muss 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

Die folgenden Einstellungen sind nur verfügbar, wenn Sie das 2021-Schema auf einem Windows-Insider-Build von Windows 10 verwenden.

Windows-Apps, die auf einem Gerät installiert sind, können die automatische Reparatur der Windows-App unterstützen, wenn sie manipuliert wurde. Das Quellinstallationsprogramm, das zum Reparieren der Windows-App verwendet wird, kann mithilfe der <RepairURIs> Eigenschaft konfiguriert werden. Die Windows-App versucht, sich selbst basierend auf dem App Installer-URI zu reparieren, falls nicht zugegriffen werden kann, dann verwendet die Windows-App die Reparatur-URI, um eine Reparaturquelle zu identifizieren. Maximal 10 Reparatur-URIs können für jede Windows-App konfiguriert werden.

Die Reparatur-URI kann auf die Dateien der Windows-App oder des App-Installers abzielen. Diese Einstellung erfordert nicht, dass die Windows-App mit 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 (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 HoursBetweenUpdateChecks-Element ist ab Windows 10, Version 1803, verfügbar.