Flat-Bundle-App-Pakete

Wichtig

Wenn Sie Ihre App an den Store übermitteln möchten, müssen Sie sich an Windows Entwicklersupport wenden, um die Genehmigung für die Verwendung flacher Pakete zu erhalten.

Flat Bundles sind eine verbesserte Möglichkeit, die Paketdateien Ihrer App zu bündeln. Eine typische Windows App-Paketdatei verwendet eine Paketstruktur auf mehreren Ebenen, in der die App-Paketdateien im Paket enthalten sein müssen. Flat bundles entfernen diese Notwendigkeit, indem nur auf die App-Paketdateien verwiesen wird, sodass sie sich außerhalb des App-Pakets befinden. Da die App-Paketdateien nicht mehr im Paket enthalten sind, können sie parallel verarbeitet werden. Dies führt zu einer kürzeren Uploadzeit, einer schnelleren Veröffentlichung (da jede App-Paketdatei gleichzeitig verarbeitet werden kann) und schließlich zu schnelleren Entwicklungsiterationen.

Flat Bundle-Diagramm

Ein weiterer Vorteil von flat bundles ist die Notwendigkeit, weniger Pakete zu erstellen. Da nur auf App-Paketdateien verwiesen wird, können zwei Versionen der App auf dieselbe Paketdatei verweisen, wenn sich das Paket nicht in den beiden Versionen geändert hat. Dadurch können Sie nur die App-Pakete erstellen, die sich beim Erstellen der Pakete für die nächste Version Ihrer App geändert haben. Standardmäßig verweisen die Flat bundles auf App-Paketdateien im selben Ordner wie selbst. Dieser Verweis kann jedoch in andere Pfade geändert werden (relative Pfade, Netzwerkfreigaben und HTTP-Speicherorte). Hierzu müssen Sie während der Flat bundle-Erstellung direkt ein BundleManifest bereitstellen.

Erstellen eines flachen Pakets

Ein flaches Paket kann mit dem MakeAppx.exe Tool oder mithilfe des Paketlayouts erstellt werden, um die Struktur Ihres Pakets zu definieren.

Verwenden der MakeAppx.exe

Verwenden Sie zum Erstellen eines Flachpakets mit MakeAppx.exe wie gewohnt den Befehl "MakeAppx.exe bundle", jedoch mit dem Schalter /fb, um die Flat-App-Paketdatei zu generieren (die sehr klein ist, da sie nur auf die App-Paketdateien verweist und keine tatsächlichen Nutzlasten enthält).

Hier sehen Sie ein Beispiel für die Befehlssyntax:

MakeAppx bundle [options] /d <content directory> /fb /p <output flat bundle name>

Weitere Informationen zur Verwendung von MakeAppx.exe finden Sie unter Erstellen eines App-Pakets mit dem MakeAppx.exe Tool.

Verwenden des Paketlayouts

Alternativ können Sie ein flaches Bündel mithilfe des Packlayouts erstellen. Legen Sie hierzu das FlatBundle-Attribut im PackageFamily-Element Ihres App-Bundlemanifests auf true fest. Weitere Informationen zum Paketlayout finden Sie unter Paketerstellung mit dem Paketlayout.

Bereitstellen eines flat-Bundles

Bevor ein Flat bundle bereitgestellt werden kann, müssen alle App-Pakete (zusätzlich zum App-Paket) mit demselben Zertifikat signiert werden. Dies liegt daran, dass alle App-Paketdateien (.appx/.msix) jetzt unabhängige Dateien sind und nicht mehr in der App-Paketdatei (.appxbundle/.msixbundle) enthalten sind.

Nachdem die Pakete signiert wurden, können Sie die App über eine der folgenden Optionen installieren:

  • Doppelklicken Sie auf die App-Paketdatei, die mit App-Installer installiert werden soll.
  • Verwenden Sie das Cmdlet Add-AppxPackage in PowerShell, und verweisen Sie auf die App-Paketdatei (vorausgesetzt, app-Pakete werden vom App-Paket erwartet).

Sie können die einzelnen .appx/.msix-Pakete eines flachen Pakets nicht selbst bereitstellen. Sie müssen über .appxbundle/.msixbundle bereitgestellt werden. Sie können jedoch einzelne .appx/.msix-Pakete eines flat-Pakets nach der Erstinstallation aktualisieren. Wenn Sie einzelne .appx/.msix-Pakete aktualisieren, müssen Sie auch das Manifest des Flatpakets aktualisieren.

Wenn Ihr v1-Flat bundle beispielsweise aus einer MSIXBUNDLE-Datei, einer x86.msix-Datei, einer x64.msix-Datei und einer Msix-Ressource besteht und Sie wissen, dass Ihr v2-Paket nur Änderungen am Medienobjektpaket enthält, müssen Sie nur die MSIXBUNDLE-Datei und das Medienobjekt .msix erstellen, um das Update installieren zu können. Sie müssen .msixbundle für v2 erstellen, da das Paket alle Versionen seiner MSIX-Pakete nachverfolgt. Wenn Sie die Version des Medienobjekts .msix auf v2 heraufstehnen, benötigen Sie eine neue MSIXBUNDLE-Datei mit diesem neuen Verweis. v2 .msixbundle kann Verweise auf die v1 x86 .msix und x64 .msix enthalten. Die MSIX-Pakete eines flat-Pakets müssen nicht die gleiche Versionsnummer aufweisen.