Packages de bundles d’applications plats

Important

Si vous envisagez de soumettre votre application au Windows Store, vous devez contacter le support technique du développeur Windows pour obtenir l’approbation d’utiliser des offres groupées plates.

Les bundles plats sont un moyen amélioré de regrouper les fichiers de package de votre application. Un fichier d’ensemble d’applications Windows classique utilise une structure d’empaquetage multiniveaux dans laquelle les fichiers de package d’application doivent être contenus dans le bundle, les bundles plats suppriment ce besoin en référençant uniquement les fichiers de package d’application, ce qui leur permet d’être en dehors du bundle d’applications. É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 entraîne une réduction du temps de chargement, une publication plus rapide (puisque chaque fichier de package d’application peut être traité en même temps) et finalement 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 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é 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 bundles plats référencent les fichiers de package d’application dans le même dossier que lui-même. Toutefois, cette référence peut être modifiée en d’autres chemins (chemins d’accès relatifs, partages réseau et emplacements HTTP). Pour ce faire, vous devez fournir directement un BundleManifest lors de la création du bundle plat.

Guide pratique pour créer un bundle plat

Un bundle plat peut être créé à l’aide de l’outil MakeAppx.exe ou à l’aide de la disposition d’empaquetage pour définir la structure de votre bundle.

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 bundle d’application plat (ce 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’emballage. 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 de l’empaquetage.

Comment déployer un bundle plat

Pour qu’un bundle plat puisse être déployé, chacun des packages d’application (en plus du bundle 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 bundle 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 bundle d’applications à installer avec le programme d’installation d’application.
  • Utilisez l’applet de commande Add-AppxPackage dans PowerShell et pointez vers le fichier de bundle d’applications (en supposant que les packages d’application sont l’endroit où le bundle d’applications s’attend à ce qu’ils soient).

Vous ne pouvez pas déployer les packages .appx/.msix individuels d’un bundle plat par eux-mêmes. 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 bundle plat v1 est composé d’un fichier .msixbundle, d’un x86 .msix, d’un fichier x64 .msix et d’une ressource .msix, et 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 la ressource .msix pour pouvoir installer la mise à jour. Vous devez générer le fichier .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 fichier .msixbundle qui contient cette nouvelle référence. Le fichier v2 .msixbundle peut contenir des références aux versions 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.