Packages de bundles d’applications plats

Important

Si vous envisagez d’envoyer votre application au Store, vous devez contacter le Support technique pour les développeurs Windows pour obtenir l’approbation d’utiliser des regroupements plats.

Les regroupements plats sont un moyen amélioré de regrouper les fichiers de package de votre application. Un fichier de regroupement d’applications Windows classique utilise une structure d’empaquetage à plusieurs niveaux dans laquelle les fichiers de package d’application doivent être contenus dans l’offre groupée. Les offres groupées plates suppriment ce besoin en référençant uniquement les fichiers de package d’application, ce qui leur permet de se trouver en dehors de l’ensemble d’applications. Étant donné que les fichiers de package d’application ne sont plus contenus dans l’offre groupée, ils peuvent être traités en parallèle, ce qui réduit le temps de chargement, accélère la publication (chaque fichier de package d’application peut être traité en même temps) et, en fin de compte, des itérations de développement plus rapides.

Flat Bundle Diagram

Un autre avantage des offres groupées plates est la nécessité de créer moins de packages. Étant donné que les fichiers de package d’application sont uniquement référencés, deux versions de l’application peuvent référencer le même fichier de package si le package n’a pas changé entre les deux 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 prochaine version de votre application. Par défaut, les offres groupées plates référencent les fichiers de package d’application dans le même dossier qu’eux-mêmes. Toutefois, cette référence peut être modifiée vers d’autres chemins d’accès (chemins relatifs, partages réseau et emplacements http). Pour ce faire, vous devez fournir directement BundleManifest lors de la création de l’offre groupée plate.

Comment créer une offre groupée plate

Vous pouvez créer une offre groupée plate à l’aide de l’outil MakeAppx.exe ou à l’aide de la disposition d’empaquetage pour définir la structure de votre offre groupée.

Utilisation de 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 l’ensemble d’applications plat (qui sera extrêmement petit, car il référence uniquement les fichiers de package d’application et ne contient aucune charge utile réelle).

Voici un exemple de syntaxe de commande :

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.

Utilisation de la disposition d’empaquetage

Vous pouvez également créer un ensemble plat à l’aide de la disposition d’empaquetage. Pour ce faire, définissez l’attribut FlatBundle sur true dans l’élément PackageFamily du manifeste de votre ensemble d’applications. Pour en savoir plus sur la disposition d’empaquetage, consultez Création de package avec la disposition d’empaquetage.

Comment déployer un ensemble plat

Pour qu’un bundle plat puisse être déployé, chacun des packages d’application (en plus de l’ensemble d’applications) doit être signé avec le même certificat. En effet, tous les fichiers de package d’application (.appx/.msix) sont désormais des fichiers indépendants et ne sont plus contenus dans le fichier de l’ensemble d’applications (.appxbundle/.msixbundle).

Une fois les packages signés, vous pouvez installer l’application via l’une des options suivantes :

  • Double-cliquez sur le fichier de l’ensemble d’applications à installer avec le programme d’installation d’application.
  • Utilisez la cmdlet Add-AppxPackage dans PowerShell et pointez vers le fichier de l’ensemble d’applications (en supposant que les packages d’application se trouvent là où l’ensemble d’applications s’attend à être).

Vous ne pouvez pas déployer seuls les packages .appx/.msix individuels d’un bundle plat. Ils doivent être déployés via .appxbundle/.msixbundle. Toutefois, vous pouvez mettre à jour des packages .appx/.msix individuels d’un bundle plat après l’installation initiale. Si vous mettez à jour un package .appx/.msix individuel, vous devez également mettre à jour le manifeste du bundle plat.

Par exemple, si votre offre groupée plate v1 est composée d’un .msixbundle, d’un .msix x86, d’un .msix x64 et d’un élément .msix, et que vous savez que votre offre groupée v2 comporte uniquement des modifications dans le package de ressources, il vous suffit de générer .msixbundle et .msix pour pouvoir installer la mise à jour. Vous devez générer .msixbundle pour v2, car le bundle effectue le suivi de toutes les versions de ses packages .msix. En remplaçant la version de la ressource .msix vers v2, vous avez besoin d’un nouveau .msixbundle qui contient cette nouvelle référence. Le .msixbundle v2 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.