Flat-Bundle-App-PaketeFlat bundle app packages

Wichtig

Wenn Sie beabsichtigen, Ihre APP an den Store zu übermitteln, müssen Sie sich für die Genehmigung zur Verwendung von flatbundles an den Windows-Entwickler Support wenden.If you intend to submit your app to the Store, you need to contact Windows developer support for approval to use flat bundles.

Flache Bündel sind eine verbesserte Möglichkeit, die Paketdateien Ihrer APP zu bündeln.Flat bundles are an improved way to bundle your app’s package files. Eine typische Windows App Bundle-Datei verwendet eine Verpackungs Struktur mit mehreren Ebenen, bei der die APP-Paketdateien im Paket enthalten sein müssen. flatbundles entfernen diese Anforderung, indem Sie nur auf die APP-Paketdateien verweisen, sodass Sie außerhalb des App Bundle liegen.A typical Windows app bundle file uses a multi-level packaging structure in which the app package files need to be contained within the bundle, flat bundles remove this need by only referencing the app package files, allowing them to be outside of the app bundle. Da die APP-Paketdateien nicht mehr im Paket enthalten sind, können Sie parallel verarbeitet werden. Dies führt zu einer geringeren Upload Zeit, einer schnelleren Veröffentlichung (da jede APP-Paketdatei gleichzeitig verarbeitet werden kann) und schließlich schnelleren Entwicklungs Iterationen.Since the app package files are no longer contained in the bundle, they can be parallel processed, which results in reduced uploading time, faster publishing (since each app package file can be processed at the same time), and ultimately faster development iterations.

Flatbundle-Diagramm

Ein weiterer Vorteil von flatbundles besteht darin, dass weniger Pakete erstellt werden müssen.Another benefit of flat bundles is the need to create less packages. 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.Since app package files are only referenced, two versions of the app can reference the same package file if the package did not change across the two versions. Dies ermöglicht es Ihnen, nur die APP-Pakete zu erstellen, die sich beim Erstellen der Pakete für die nächste Version der APP geändert haben.This allows you to have to create only the app packages that have changed when building the packages for the next version of your app. Standardmäßig verweisen die flatbundles auf App-Paketdateien, die sich im selben Ordner wie sich selbst befinden.By default, the flat bundles will reference app package files within the same folder as itself. Allerdings kann dieser Verweis in andere Pfade (relative Pfade, Netzwerkfreigaben und HTTP-Speicherorte) geändert werden.However, this reference can be changed to other paths (relative paths, network shares, and http locations). Zu diesem Zweck müssen Sie während der Erstellung des flatbundles direkt ein bundlemanifest bereitstellen.To do this, you must directly provide a BundleManifest during the flat bundle creation.

Erstellen eines flatbundlesHow to create a flat bundle

Ein flatbundle kann mithilfe des MakeAppx.exe Tools oder mithilfe des Paket Layouts erstellt werden, um die Struktur des Bündels zu definieren.A flat bundle can be created using the MakeAppx.exe tool, or by using the packaging layout to define the structure of your bundle.

Verwenden der MakeAppx.exeUsing MakeAppx.exe

Verwenden Sie zum Erstellen eines flatbundles mithilfe von MakeAppx.exe den Befehl "MakeAppx.exe Bundle" wie üblich, aber mit dem Schalter "/FB", um die flatApp Bundle-Datei zu generieren (die sehr klein ist, da Sie nur auf die APP-Paketdateien verweist und keine tatsächlichen Nutzlasten enthält).To create a flat bundle using MakeAppx.exe, use the “MakeAppx.exe bundle” command as usual but with the /fb switch to generate the flat app bundle file (which will be extremely small since it only references the app package files and does not contain any actual payloads).

Im folgenden finden Sie ein Beispiel für die Befehlssyntax:Here's an example of the command syntax:

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.For more information on using MakeAppx.exe, see Create an app package with the MakeAppx.exe tool.

Verwenden des PaketlayoutsUsing packaging layout

Alternativ können Sie ein flatbundle mit dem Verpackungs Layout erstellen.Alternatively, you can create a flat bundle using the packing layout. Legen Sie hierzu das flatbundle -Attribut im packagefamily -Element Ihres App Bundle Manifests auf true fest.To do this, set the FlatBundle attribute to true in the PackageFamily element of your app bundle manifest. Weitere Informationen zum Verpackungs Layout finden Sie unter Paket Erstellung mit dem Paketlayout.To learn more about the packaging layout, see Package creation with the packaging layout.

Bereitstellen eines flatbundlesHow to deploy a flat bundle

Bevor ein flatbundle bereitgestellt werden kann, muss jedes app-Paket (zusätzlich zum App Bundle) mit demselben Zertifikat signiert werden.Before a flat bundle can be deployed, each of the app packages (in addition to the app bundle) must be signed with the same certificate. Dies liegt daran, dass alle App-Paketdateien (. AppX/. msix) jetzt unabhängige Dateien sind und nicht mehr in der APP Bundle Datei (. appxbundle/. msixbundle) enthalten sind.This is because all of the app package files (.appx/.msix) are now independent files and are no longer contained within the app bundle (.appxbundle/.msixbundle) file.

Nachdem die Pakete signiert sind, können Sie die APP über eine der folgenden Optionen installieren:After the packages are signed, you can install the app via one of these options:

  • Doppelklicken Sie auf die APP Bundle Datei, die Sie mit dem APP-Installer installierenDouble click the app bundle file to install with App Installer.
  • Verwenden Sie das Add-appxpackage-Cmdlet in PowerShell, und zeigen Sie auf die APP Bundle Datei (vorausgesetzt, dass die APP Bundle von App-Paketen erwartet werden).Use the Add-AppxPackage cmdlet in PowerShell and point to the app bundle file (assuming app packages are where the app bundle expects them to be).

Sie können die einzelnen AppX-/msix-Pakete eines flatbundles nicht selbst bereitstellen.You cannot deploy the individual .appx/.msix packages of a flat bundle by themselves. Sie müssen über die. appxbundle/. msixbundle bereitgestellt werden.They must be deployed through the .appxbundle/.msixbundle. Nach der Erstinstallation können Sie jedoch einzelne AppX-/msix-Pakete eines flatbundles aktualisieren.However, you can update individual .appx/.msix packages of a flat bundle after the initial install. Wenn Sie das Paket "Individual. AppX/msix" aktualisieren, müssen Sie auch das Manifest des flatbundles aktualisieren.If you do update individual .appx/.msix package, you will also need to update the flat bundle's manifest.

Wenn Ihr v1-flatbundle z. b. aus einer msixbundle-, einer x86. msix-, x64. msix-und einer Asset. msix-Datei besteht und Sie wissen, dass Ihr v2-Bundle nur Änderungen am Asset-Paket enthält, müssen Sie nur die msixbundle-und Asset. msix-Datei erstellen, um das Update installieren zu können.For example, if your v1 flat bundle is composed of an .msixbundle, an x86 .msix, an x64 .msix, and an asset .msix, and you know that your v2 bundle only has changes to the asset package, then you only need to build the .msixbundle and the asset .msix to be able to install the update. Sie müssen das msixbundle für V2 erstellen, da das Paket alle Versionen seiner msix-Pakete nachverfolgt.You must build the .msixbundle for v2 because the bundle keeps track of all the versions of its .msix packages. Wenn Sie die-Version von Asset. msix auf v2 verweisen, benötigen Sie eine neue. msixbundle-Datei mit diesem neuen Verweis.By bumping the version of the asset .msix to v2, you need a new .msixbundle that has this new reference. Das v2. msixbundle kann Verweise auf die Version v1 x86. msix und x64. msix enthalten. die msix-Pakete eines flatbundles müssen nicht die gleiche Versionsnummer aufweisen.The v2 .msixbundle can contain references to the v1 x86 .msix and x64 .msix; the .msix packages of a flat bundle does not need to have the same version number.