Manuelles Erstellen einer App-Installer-Datei
In diesem Artikel wird beschrieben, wie Sie manuell eine App-Installer-Datei erstellen, die einen zugehörigen Satz mit Funktionen zum Automatischen Aktualisieren und Reparieren definiert. Ein verwandter Satz ist nicht eine Entität, sondern eine Kombination aus einem Standard Paket und optionalen Paketen.
Damit ein verwandter Satz als eine Entität installiert werden kann, müssen wir in der Lage sein, das Haupt- und 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 erfolgt die App-Installer-Datei wie folgt:
- Das Windows-App-Paket, auf das im
URI
Attribut des < MainPackage-Elements > verwiesen wird, überprüft die AttributeName
,Publisher
undVersion
des Windows-App-Pakets. Wenn das Paket/Identität-Element im Windows-App-Paketmanifest nicht übereinstimmen, schlägt die Installation fehl. - Erstellen Sie einen Verweis auf die Update- und Reparatur-URIs für die Paketfamilie.
Erstellen einer 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.
- Erstellen Sie die *.AppInstaller-Datei.
- Geben Sie die Attribute der App-Installer-Datei an.
- Geben Sie das Standard Windows-App-Paket an.
- Geben Sie den zugehörigen Satz Optionales Paket an.
- Geben Sie die Abhängigkeit für Windows-App-Frameworkpaket an.
- Geben Sie die Update-URI-Pfade an.
- Geben Sie die Reparatur-URI-Pfade an.
- Geben Sie die Update-Einstellungen an.
Beispiel für eine App-Installer-Datei
Nach dem Durchführen der oben aufgeführten Schritte, 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 Sie die *.AppInstaller-Datei
Erstellen Sie mit einem Text-Editor (Notepad.exe) eine neue Datei mit der Dateinamenerweiterung *.AppInstaller
Hilfe & Anleitung:
- Öffnen Sie das Start-Menü.
- Geben Sie folgenden Pfad ein:
notepad.exe
. - Öffnen Sie das Datei-Menü.
- Wählen Sie Speichern Als im Dropdownmenü aus.
Schritt 2: Hinzufügen der Basisvorlage
Fügen Sie das AppInstaller
Element in die App-Installer-Datei ein, wobei die Version, der Pfad und der Netzwerkadresse der App-Installer-Datei nicht berücksichtigt werden. 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 vierpunktigen Notation (1.0.0.0). |
URI | Ein URI-Pfad zur aktuellen App-Installer-Datei, auf die vom Gerät zugegriffen werden kann. |
Hilfe & Anleitung:
Öffnen Sie die in Schritt 1 erstellte Datei.
Kopieren Sie den folgenden XML-Inhalt in Ihre *.AppInstaller-Datei.
<?xml version="1.0" encoding="utf-8"?> <AppInstaller xmlns="http://schemas.microsoft.com/appx/appinstaller/2021" Version="" Uri="" > </AppInstaller>
Aktualisieren des
Version
Attributs mit der Version Ihrer App-Installer-DateiAktualisieren Sie das
URI
Attribut mit der Netzwerkadresse, wo auf diese *.AppInstaller-Datei zugegriffen werden kann.
Schritt 3: Hinzufügen der Standard Paketinformationen
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-Installer entweder ein *.msix oder *.appx ist. Verwenden Sie, <MainBundle>
wenn das Windows-App-Installer ein gebündelter Windows-App-Installer 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. Hierzu können 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-Installer verwendet wird. Hierzu können Sie das folgende PowerShell-Cmdlet ausführen: $(Get-AppxPackage [AppName]).Publisher . |
Version | Die Version des primären Windows-App-Installers in einer quadrierten Schreibweise (1.0.0.0). Hierzu können Sie das folgende PowerShell-Cmdlet ausführen: $(Get-AppxPackage [AppName]).Version . |
ProcessorArchitecture | Die Architektur, auf der das primäre Windows-App-Installationsprogramm installiert wird. |
URI | 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 Standard-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-Bündel-Installer
Wenn es sich bei dem Standard-App-Paket um eine .msixbundle- oder .appxbundle-Datei handelt, verwenden Sie <MainBundle>
statt <MainPackage>
, wie unten dargestellt. Für Bündel 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 beim Standard App-Paket-Attribut sollte das untergeordnete Element innerhalb des <OptionalPackages>
Attributs sein, wenn das optionale Paket entweder ein App-Paket oder ein App-Bündel sein <Package>
<Bundle>
kann. Die Paketinformationen in den untergeordneten Elementen sollten mit dem Identitätselement im Bündel- oder Paketmanifest übereinstimmen.
Element | BESCHREIBUNG |
---|---|
Name | Der Name der optionalen Anwendung, die über die App-Installer-Datei verteilt wird. Hierzu können Sie das folgende PowerShell-Cmdlet ausführen: $(Get-AppxPackage [AppName]).Name . |
Herausgeber | Der kanonische Name des Herausgeberzertifikats, das zum Signieren des optionalen Windows-App-Installer verwendet wird. Hierzu können Sie das folgende PowerShell-Cmdlet ausführen: $(Get-AppxPackage [AppName]).Publisher . |
Version | Die Version des optionalen Windows-App-Installers in einer quadrierten Schreibweise (1.0.0.0). Hierzu können Sie das folgende PowerShell-Cmdlet ausführen: $(Get-AppxPackage [AppName]).Version . |
ProcessorArchitecture | Die Architektur, auf der der optionale Windows-App-Installer installiert wird. |
URI | 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 Standard-Paket oder die optionalen Pakete angeben.
Element | BESCHREIBUNG |
---|---|
Name | Der Name der Abhängigkeitsanwendung, die über die App-Installer-Datei verteilt wird. Hierzu können Sie das folgende PowerShell-Cmdlet ausführen: $(Get-AppxPackage [AppName]).Name . |
Herausgeber | Der kanonische Name des Herausgeberzertifikats, das zum Signieren des Windows-App-Installers für Abhängigkeiten verwendet wird. Hierzu können Sie das folgende PowerShell-Cmdlet ausführen: $(Get-AppxPackage [AppName]).Publisher . |
Version | Die Version des Windows-App-Installers für Abhängigkeiten in einer quadrierten Schreibweise (1.0.0.0). Hierzu können Sie das folgende PowerShell-Cmdlet ausführen: $(Get-AppxPackage [AppName]).Version . |
ProcessorArchitecture | Die Architektur, auf der der Windows-App-Installer für Abhängigkeiten installiert wird. |
URI | Der URI-Pfad zum Installationsmedium der Windows-App für 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. <Update-Einstellungen> ist ein optionales Element. Innerhalb von <Update Einstellungen> 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 Update Einstellungen-Schema; Weitere Arten von On-Launch-Updates wie Updates mit einer Eingabeaufforderung finden Sie im OnLaunch-Schema
Elemente | Beschreibung |
---|---|
HoursBetweenUpdateChecks | Definiert die minimale Lücke bei Windows-App-Updateüberprüfungen. |
UpdateBlocksActivation | Definiert die Erfahrung, wenn nach einem App-Update gesucht wird. |
ShowPrompt | Definiert, ob ein Fenster angezeigt wird, wenn Updates installiert werden und wann nach Updates gesucht wird. |
ForceUpdateFromAnyVersion | Gibt an, dass die nächste Version der Anwendung eine neuere oder ältere Version sein könnte. Bei True werden alle für beide Versionen installiert, wenn False (Standard) werden nur neue Versionen installiert. |
<?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 der automatischen Aktualisierung Einstellungen
Wichtig
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 sind, aktualisieren standardmäßig ihre 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-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 der automatischen Reparatur Einstellungen
Wichtig
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 darauf zugegriffen werden kann, dann verwendet die Windows-App die Reparatur-URI, um eine Reparaturquelle zu identifizieren. Maximal 10 Reparatur-URIs können pro 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.