Flat-Bundle-App-Pakete

Wichtig

Wenn Sie Ihre App an den Store übermitteln möchten, müssen Sie sich an den Windows-Developer Support wenden, um die Genehmigung für die Verwendung von Flat Bundle zu erhalten.

Flat Bundle sind eine verbesserte Möglichkeit zum Bündeln der App-Paketdateien. Eine typische Windows-App-Bündeldatei verwendet eine mehrstufige Paketstruktur, in der die App-Paketdateien im Bündel enthalten sein müssen. Flache Bündel entfernen diese Notwendigkeit, indem sie nur auf die App-Paketdateien verweisen, sodass sie sich außerhalb des App-Bündels befinden können. Da die App-Paketdateien nicht mehr im Bundle enthalten sind, können sie parallel verarbeitet werden, was zu einer reduzierten Uploadzeit, einer schnelleren Veröffentlichung (da jede App-Paketdatei gleichzeitig verarbeitet werden kann) und letztendlich schnellere Entwicklungsdurchläufe führt.

Flat Bundle Diagram

Ein weiterer Vorteil von Flat Bundle 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. Auf diese Weise müssen 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 Bundle auf App-Paketdateien innerhalb desselben Ordners. Diese Referenz kann jedoch in andere Pfade (relative Pfade, Netzwerkfreigaben und HTTP-Standorte) geändert werden. Dazu müssen Sie während der Erstellung eines Flat Bundles ein BundleManifest bereitstellen.

So erstellen Sie ein Flat Bundle

Ein Flat Bundle kann mit dem MakeAppx.exe-Tool oder mithilfe des Verpackungslayouts erstellt werden, um die Struktur Ihres Bündels zu definieren.

MakeAppx.exe verwenden

Um ein Flat Bundle mit MakeAppx.exe zu erstellen, verwenden Sie den Befehl „MakeAppx.exe bundle“ wie gewohnt, aber mit dem /fb-Switch, um die Flache App-Bündeldatei zu generieren (was extrem klein ist, da sie nur auf die App-Paketdateien verweist und keine tatsächlichen Nutzlasten enthält).

Das folgende Beispiel zeigt 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 Tool MakeAppx.exe.

Verwenden des Verpackungslayouts

Alternativ können Sie mithilfe des Verpackungslayouts ein Flat Bundle erstellen. Setzen Sie dazu das FlatBundle-Attribut im PackageFamily-Element des App-Bündelmanifests auf true. Weitere Informationen zum Verpackungslayout finden Sie unter Paketerstellung mit dem Verpackungslayout.

Hilfe & Anleitung zur Bereitstellung eines Flat Bundles

Bevor ein Flat Bundle bereitgestellt werden kann, müssen alle App-Pakete (zusätzlich zum App-Bündel) 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-Bundledatei (.appxbundle/.msixbundle) enthalten sind.

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

  • Machen Sie einen Doppelklick auf die App-Bündeldatei, um sie mit dem App-Installer zu installieren.
  • Verwenden Sie das Add-AppxPackage-Cmdlet in PowerShell, und zeigen Sie auf die App-Bündeldatei (vorausgesetzt, app-Pakete sind der Ort, an dem das App-Bündel erwartet wird).

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

Wenn Ihr v1-Flat-Bundle z. B. aus einem .msixbundle, einem x86 .msix, einem x64 .msix und einer .msix-Ressource besteht, und Sie wissen, dass Ihr v2-Bündel nur Änderungen am Objektpaket hat, müssen Sie nur die .msixbundle und die .msix-Ressource erstellen, um das Update zu installieren. Sie müssen die .msixbundle für v2 erstellen, da das Bundle alle Versionen seiner .msix-Pakete nachverfolgt. Wenn Sie die Version der Ressource .msix auf v2 erhöhen, benötigen Sie einen neuen .msixbundle-Wert, der über diese neue Referenz verfügt. Die v2 .msixbundle kann Verweise auf die v1 x86 .msix und x64 .msix enthalten; die .msix-Pakete eines Flat Bundles müssen nicht dieselbe Versionsnummer aufweisen.