Flat-Bundle-App-Pakete

Wichtig

Wenn Sie beabsichtigen, Ihre App an den Store zu übermitteln, müssen Sie sich an den Windows-Entwicklersupport wenden, um die Genehmigung für die Verwendung von flachen Bündeln zu erhalten.

Flache Bündel sind eine verbesserte Möglichkeit, die Paketdateien Ihrer App zu bündeln. Eine typische Windows-App-Bündeldatei verwendet eine Paketstruktur auf mehreren Ebenen, in der die App-Paketdateien im Bundle enthalten sein müssen, indem flache Bündel diese Notwendigkeit entfernen, indem nur auf die App-Paketdateien verwiesen wird, sodass sie außerhalb des App-Bundles liegen können. Da die App-Paketdateien nicht mehr im Bundle enthalten sind, können sie parallel verarbeitet werden, was zu einer reduzierten Uploadzeit führt, eine schnellere Veröffentlichung (da jede App-Paketdatei gleichzeitig verarbeitet werden kann) und letztendlich schnellere Entwicklungs iterationen.

Flat Bundle Diagram

Ein weiterer Vorteil von flachen Bündeln 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 das Paket nicht in den beiden Versionen geändert wurde. Auf diese Weise müssen Sie nur die App-Pakete erstellen, die sich geändert haben, wenn Sie die Pakete für die nächste Version Ihrer App erstellen. Standardmäßig verweisen die flachen Bündel auf App-Paketdateien innerhalb desselben Ordners wie sich selbst. Dieser Verweis kann jedoch in andere Pfade geändert werden (relative Pfade, Netzwerkfreigaben und HTTP-Speicherorte). Dazu müssen Sie während der Flachbündelerstellung direkt ein BundleManifest bereitstellen.

So erstellen Sie ein flaches Bundle

Ein flaches Bündel kann mithilfe des tools MakeAppx.exe oder mithilfe des Verpackungslayouts erstellt werden, um die Struktur Ihres Bündels zu definieren.

Verwenden der MakeAppx.exe

Um ein flaches Bundle mit MakeAppx.exe zu erstellen, verwenden Sie den Befehl "MakeAppx.exe Bundle" wie gewohnt, aber mit dem /fb-Schalter, um die flache App-Bundledatei zu generieren (das ist extrem klein, da es 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 tool MakeAppx.exe.

Verwenden des Verpackungslayouts

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

Bereitstellen eines flachen Bundles

Bevor ein flaches Bundle bereitgestellt werden kann, müssen alle App-Pakete (zusätzlich zum App-Bundle) 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:

  • Doppelklicken Sie auf die App-Bundledatei, um sie mit dem App-Installer zu installieren.
  • Verwenden Sie das Add-AppxPackage-Cmdlet in PowerShell und zeigen Sie auf die App-Bundledatei (vorausgesetzt, app-Pakete sind der Ort, an dem das App-Bundle erwartet, dass sie vorhanden sind).

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

Wenn Ihr v1-Flat-Bundle beispielsweise aus einem .msixbundle, einem x86 .msix, einem x64 .msix und einem Objekt .msix besteht und Sie wissen, dass Ihr v2-Bundle nur Änderungen am Asset-Paket aufweist, müssen Sie nur die .msixbundle und das Asset .msix erstellen, um das Update installieren zu können. Sie müssen das MSixbundle für v2 erstellen, da das Bundle alle Versionen seiner MSIX-Pakete nachverfolgt. Wenn Sie die Version des Asset .msix auf v2 stoßen, benötigen Sie einen neuen MSIXbundle mit diesem neuen Verweis. Die v2 .msixbundle kann Verweise auf die v1 x86 .msix und x64 .msix enthalten; die MSIX-Pakete eines flachen Bundles müssen nicht dieselbe Versionsnummer aufweisen.