Packages de bundles d’applications platsFlat bundle app packages

Important

Si vous envisagez de soumettre votre application au Windows Store, vous devez contacter le support technique développeur Windows pour approbation afin d’utiliser des offres groupées plates.If you intend to submit your app to the Store, you need to contact Windows developer support for approval to use flat bundles.

Les tresses plates sont un moyen amélioré de regrouper les fichiers de package de votre application.Flat bundles are an improved way to bundle your app’s package files. Un fichier de lot d’applications Windows classique utilise une structure de Packaging à plusieurs niveaux dans laquelle les fichiers de package d’application doivent être contenus dans le bundle, les bottes plates éliminent ce besoin en référençant uniquement les fichiers de package d’application, ce qui permet de les faire en dehors de l’offre groupée d’applications.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. Étant donné que les fichiers de package d’application ne sont plus contenus dans le bundle, ils peuvent être traités en parallèle, ce qui réduit le temps de téléchargement, accélérer la publication (puisque chaque fichier de package d’application peut être traité en même temps), et enfin des itérations de développement plus rapides.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.

Diagramme d’ensemble plat

Le besoin de créer des packages moins nombreux est un autre avantage des offres groupées.Another benefit of flat bundles is the need to create less packages. Étant donné que les fichiers de package d’application sont référencés uniquement, deux versions de l’application peuvent référencer le même fichier de package si le package n’a pas changé dans les deux versions.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. Cela vous permet de créer uniquement les packages d’application qui ont été modifiés lors de la génération des packages pour la version suivante de votre application.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. Par défaut, les regroupements plats font référence aux fichiers de package d’application dans le même dossier qu’eux-mêmes.By default, the flat bundles will reference app package files within the same folder as itself. Toutefois, cette référence peut être remplacée par d’autres chemins d’accès (chemins d’accès relatifs, partages réseau et emplacements http).However, this reference can be changed to other paths (relative paths, network shares, and http locations). Pour ce faire, vous devez fournir directement un BundleManifest lors de la création du groupement plat.To do this, you must directly provide a BundleManifest during the flat bundle creation.

Comment créer un bundle platHow to create a flat bundle

Un bundle plat peut être créé à l’aide de l’outil MakeAppx.exe, ou en utilisant la disposition d’empaquetage pour définir la structure de votre bundle.A flat bundle can be created using the MakeAppx.exe tool, or by using the packaging layout to define the structure of your bundle.

Utilisation de MakeAppx.exeUsing MakeAppx.exe

Pour créer un bundle plat à l’aide de MakeAppx.exe, utilisez la commande « MakeAppx.exe Bundle » comme d’habitude, mais avec le commutateur/FB pour générer le fichier de bundle d’applications plat (qui sera extrêmement petit, car il ne fait référence qu’aux fichiers de package d’application et ne contient pas de charge utile réelle).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).

Voici un exemple de syntaxe de commande :Here's an example of the command syntax:

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

Pour plus d’informations sur l’utilisation de MakeAppx.exe, consultez créer un package d’application avec l’outil MakeAppx.exe.For more information on using MakeAppx.exe, see Create an app package with the MakeAppx.exe tool.

Utilisation de la disposition de PackagingUsing packaging layout

Vous pouvez également créer un bundle plat à l’aide de la disposition de compression.Alternatively, you can create a flat bundle using the packing layout. Pour ce faire, affectez la valeur true à l’attribut FlatBundle dans l’élément PackageFamily du manifeste de l’ensemble d’applications.To do this, set the FlatBundle attribute to true in the PackageFamily element of your app bundle manifest. Pour en savoir plus sur la disposition de Packaging, consultez création de package avec la disposition de Packaging.To learn more about the packaging layout, see Package creation with the packaging layout.

Comment déployer un bundle platHow to deploy a flat bundle

Avant de pouvoir déployer un bundle plat, chacun des packages d’application (en plus de l’offre groupée d’applications) doit être signé avec le même certificat.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. Cela est dû au fait que tous les fichiers de package d’application (. Appx/. msix) sont maintenant des fichiers indépendants et ne sont plus contenus dans le fichier de l’ensemble d’applications (. appxbundle/. msixbundle).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.

Une fois les packages signés, vous pouvez installer l’application via l’une des options suivantes :After the packages are signed, you can install the app via one of these options:

  • Double-cliquez sur le fichier d’offre groupée d’applications à installer avec l’application installer.Double click the app bundle file to install with App Installer.
  • Utilisez l' applet de commande Add-AppxPackage dans PowerShell et pointez sur le fichier de l’offre groupée d’applications (en supposant que les packages d’application sont là où l’offre groupée d’applications s’en attend).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).

Vous ne pouvez pas déployer les packages. Appx/. msix individuels d’un bundle plat par eux-mêmes.You cannot deploy the individual .appx/.msix packages of a flat bundle by themselves. Ils doivent être déployés via le. appxbundle/. msixbundle.They must be deployed through the .appxbundle/.msixbundle. Toutefois, vous pouvez mettre à jour des packages. Appx/. msix individuels d’un bundle plat après l’installation initiale.However, you can update individual .appx/.msix packages of a flat bundle after the initial install. Si vous mettez à jour un package. Appx/. msix individuel, vous devrez également mettre à jour le manifeste du bundle plat.If you do update individual .appx/.msix package, you will also need to update the flat bundle's manifest.

Par exemple, si votre bundle plat v1 est composé d’un fichier. msixbundle, d’un fichier x86. msix, d’un fichier x64. msix et d’un élément Asset. msix, et que vous savez que votre bundle v2 n’a que des modifications apportées au package de ressources, vous devez uniquement générer le fichier. msixbundle et Asset. msix pour pouvoir installer la mise à jour.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. Vous devez générer le. msixbundle pour v2, car le bundle effectue le suivi de toutes les versions de ses packages. msix.You must build the .msixbundle for v2 because the bundle keeps track of all the versions of its .msix packages. En faisant passer la version de la ressource. msix à v2, vous avez besoin d’un nouveau. msixbundle qui a cette nouvelle référence.By bumping the version of the asset .msix to v2, you need a new .msixbundle that has this new reference. V2. msixbundle peut contenir des références à v1 x86. msix et x64. msix ; les packages. msix d’un bundle plat n’ont pas besoin d’avoir le même numéro de version.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.