Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Pour préparer l’installation de votre application en streaming, vous devez créer un mappage de groupe de contenu. Cet article vous aidera à créer et à convertir une carte de groupe de contenu tout en fournissant des conseils et astuces.
Création du mappage de groupe de contenu source
Vous devez créer un SourceAppxContentGroupMap.xml fichier, puis utiliser Visual Studio ou l’outil MakeAppx.exe pour convertir ce fichier en version finale : AppxContentGroupMap.xml. Il est possible d’ignorer une étape en créant le AppxContentGroupMap.xml à partir de zéro, mais il est recommandé (et généralement plus facile) de créer le SourceAppxContentGroupMap.xml et de le convertir, car les caractères génériques ne sont pas autorisés dans le AppxContentGroupMap.xml, bien qu’ils soient vraiment utiles.
Examinons un scénario simple dans lequel l’installation de streaming d’applications est bénéfique.
Supposons que vous avez créé un jeu, mais que la taille de votre application finale est supérieure à 100 Go. Cela va prendre beaucoup de temps pour télécharger à partir du Microsoft Store, ce qui peut être gênant. Si vous choisissez d’utiliser l’installation de streaming d’applications, vous pouvez spécifier l’ordre dans lequel les fichiers de votre application sont téléchargés. En indiquant au Windows Store de télécharger d’abord les fichiers essentiels, l’utilisateur sera en mesure d’interagir avec votre application plus tôt, tandis que d’autres fichiers non essentiels sont téléchargés en arrière-plan.
Remarque
L’utilisation de l’installation de streaming d’applications s’appuie fortement sur l’organisation de fichiers de votre application. Nous vous recommandons de réfléchir à la disposition du contenu de votre application en ce qui concerne l’installation de streaming d’applications dès que possible pour simplifier le segmentage des fichiers de votre application.
Tout d’abord, nous allons créer un SourceAppxContentGroupMap.xml fichier.
Avant d’accéder aux détails, voici un exemple de fichier simple et complet SourceAppxContentGroupMap.xml :
<?xml version="1.0" encoding="utf-8"?>
<ContentGroupMap xmlns="http://schemas.microsoft.com/appx/2016/sourcecontentgroupmap"
xmlns:s="http://schemas.microsoft.com/appx/2016/sourcecontentgroupmap">
<Required>
<ContentGroup Name="Required">
<File Name="StreamingTestApp.exe"/>
</ContentGroup>
</Required>
<Automatic>
<ContentGroup Name="Level2">
<File Name="Assets\Level2\*"/>
</ContentGroup>
<ContentGroup Name="Level3">
<File Name="Assets\Level3\*"/>
</ContentGroup>
</Automatic>
</ContentGroupMap>
Il existe deux composants principaux à un mappage de groupe de contenu : la section requise , qui contient le groupe de contenu requis et la section automatique , qui peut contenir plusieurs groupes de contenu automatiques.
Groupe de contenu requis
Le groupe de contenu requis est un seul groupe de contenu dans l’élément <Required> du SourceAppxContentGroupMap.xml. Un groupe de contenu requis doit contenir tous les fichiers essentiels nécessaires pour lancer l’application avec l’expérience utilisateur minimale. En raison de la compilation .NET Native, tout le code (exécutable de l’application) doit faire partie du groupe requis, en laissant des ressources et d’autres fichiers pour les groupes automatiques.
Par exemple, si votre application est un jeu, le groupe requis peut inclure des fichiers utilisés dans le menu principal ou l’écran d’accueil du jeu.
Voici l’extrait de code de notre exemple de fichier d’origine SourceAppxContentGroupMap.xml :
<Required>
<ContentGroup Name="Required">
<File Name="StreamingTestApp.exe"/>
</ContentGroup>
</Required>
Voici quelques points importants à noter :
- L’élément
<ContentGroup>à l'intérieur de l'élément<Required>doit être nommé « Required ». Ce nom est réservé uniquement au groupe de contenu requis et ne peut pas être utilisé avec toute autre<ContentGroup>dans la carte de groupe de contenu finale. - Il n’y en a qu’un
<ContentGroup>. Cela est intentionnel, car il ne doit y avoir qu’un seul groupe de fichiers essentiels. - Le fichier de cet exemple est un fichier unique
.exe. Un groupe de contenu requis n’est pas limité à un seul fichier, il peut y en avoir plusieurs.
Un moyen simple de commencer à écrire ce fichier consiste à ouvrir une nouvelle page dans votre éditeur de texte favori, à effectuer un rapide « Enregistrer sous » de votre fichier dans le dossier de projet de votre application et à nommer votre fichier nouvellement créé : SourceAppxContentGroupMap.xml.
Important
Si vous développez une application C++, vous devez ajuster les propriétés de fichier de votre SourceAppxContentGroupMap.xml. Définissez la Content propriété sur true et la File Type propriété sur fichier XML.
Lorsque vous créez le SourceAppxContentGroupMap.xmlfichier , il est utile de tirer parti de l’utilisation de caractères génériques dans les noms de fichiers, pour plus d’informations, consultez la section Conseils et astuces pour l’utilisation de caractères génériques .
Si vous avez développé votre application à l’aide de Visual Studio, il est recommandé d’inclure ceci dans votre groupe de contenu requis :
<File Name="*"/>
<File Name="WinMetadata\*"/>
<File Name="Properties\*"/>
<File Name="Assets\*Logo*"/>
<File Name="Assets\*SplashScreen*"/>
L’ajout du nom de fichier générique unique inclut des fichiers ajoutés au répertoire du projet à partir de Visual Studio, tels que l’exécutable de l’application ou les DLL. Les dossiers WinMetadata et Properties doivent inclure les autres dossiers générés par Visual Studio. Les jokers des ressources sont utilisés pour sélectionner les images du logo et de l'écran de démarrage nécessaires à l'installation de l'application.
Notez que vous ne pouvez pas utiliser le double caractère générique « ** », à la racine de la structure de fichiers pour inclure chaque fichier dans le projet, car cela échouera lors de la tentative de conversion SourceAppxContentGroupMap.xml en finale AppxContentGroupMap.xml.
Il est également important de noter que les fichiers d’empreinte (AppxManifest.xml, AppxSignature.p7x, resources.pri, etc.) ne doivent pas être inclus dans la carte du groupe de contenu. Si les fichiers d’empreinte sont inclus dans l’un des noms de fichiers génériques que vous spécifiez, ils sont ignorés.
Groupes de contenu automatiques
Les groupes de contenu automatiques sont les ressources téléchargées en arrière-plan pendant que l’utilisateur interagit avec les groupes de contenu déjà téléchargés. Ces fichiers contiennent des fichiers supplémentaires qui ne sont pas essentiels au lancement de l’application. Par exemple, vous pouvez diviser les groupes de contenu automatiques dans différents niveaux, en définissant chaque niveau comme un groupe de contenu distinct. Comme indiqué dans la section du groupe de contenu requis : en raison de la compilation .NET Native, tout le code (exécutable de l’application) doit faire partie du groupe requis, en laissant des ressources et d’autres fichiers pour les groupes automatiques.
Examinons de plus près le groupe de contenu automatique de notre SourceAppxContentGroupMap.xml exemple :
<Automatic>
<ContentGroup Name="Level2">
<File Name="Assets\Level2\*"/>
</ContentGroup>
<ContentGroup Name="Level3">
<File Name="Assets\Level3\*"/>
</ContentGroup>
</Automatic>
La disposition du groupe automatique est assez similaire au groupe requis, avec quelques exceptions :
- Il existe plusieurs groupes de contenu.
- Les groupes de contenu automatiques peuvent avoir des noms uniques, à l’exception du nom « Obligatoire », qui est réservé au groupe de contenu requis.
- Les groupes de contenu automatiques ne peuvent pas contenir de fichiers du groupe de contenu requis.
- Un groupe de contenu automatique peut contenir des fichiers qui se trouvent également dans d’autres groupes de contenu automatiques. Les fichiers ne seront téléchargés qu’une seule fois et seront téléchargés avec le premier groupe de contenu automatique qui les contient.
Conseils et astuces pour l’utilisation de caractères génériques
La disposition des fichiers pour les mappages de groupes de contenu est toujours relative à votre dossier racine de projet.
Dans notre exemple, les caractères génériques sont utilisés dans les deux <ContentGroup> éléments pour récupérer tous les fichiers au sein d’un niveau de fichier « Assets\Level2 » ou « Assets\Level3 ». Si vous utilisez une structure de dossiers plus approfondie, vous pouvez utiliser le double caractère générique :
<ContentGroup Name="Level2">
<File Name="Assets\Level2\**"/>
</ContentGroup>
Vous pouvez également utiliser des caractères génériques avec du texte pour les noms de fichiers. Par exemple, si vous souhaitez inclure chaque fichier dans votre dossier « Assets » avec un nom de fichier qui contient « Level2 », vous pouvez utiliser quelque chose comme suit :
<ContentGroup Name="Level2">
<File Name="Assets\*Level2*"/>
</ContentGroup>
Convertir SourceAppxContentGroupMap.xml en AppxContentGroupMap.xml
Pour convertir la SourceAppxContentGroupMap.xml en version finale, AppxContentGroupMap.xml, vous pouvez utiliser Visual Studio 2017 ou bien l’outil en ligne de commande MakeAppx.exe.
Pour utiliser Visual Studio pour convertir votre mappage de groupe de contenu :
- Ajoutez le
SourceAppxContentGroupMap.xmlà votre dossier de projet - Modifiez le Build Action de
SourceAppxContentGroupMap.xmlen "AppxSourceContentGroupMap" dans la fenêtre Propriétés - Cliquez avec le bouton droit sur le projet dans l’Explorateur de solutions
- Accéder au Store -> Convertir un fichier de mappage de groupe de contenu
Si vous n’avez pas développé votre application dans Visual Studio, ou si vous préférez simplement utiliser la ligne de commande, utilisez l’outil MakeAppx.exe pour convertir votre SourceAppxContentGroupMap.xml.
Une commande MakeAppx.exe simple peut ressembler à ceci :
MakeAppx convertCGM /s MyApp\SourceAppxContentGroupMap.xml /f MyApp\AppxContentGroupMap.xml /d MyApp\
L’option /s spécifie le chemin d’accès au SourceAppxContentGroupMap.xml, et /f spécifie le chemin d’accès au AppxContentGroupMap.xml. L’option finale, /d, spécifie le répertoire à utiliser pour développer des caractères génériques de nom de fichier, dans ce cas, il s’agit du répertoire du projet d’application.
Pour plus d’informations sur les options que vous pouvez utiliser avec MakeAppx.exe, ouvrez une invite de commandes, accédez à MakeAppx.exe et entrez :
MakeAppx convertCGM /?
C’est tout ce dont vous aurez besoin pour préparer votre AppxContentGroupMap.xml application ! Il reste encore plus à faire avant que votre application soit entièrement prête pour le Microsoft Store. Pour plus d’informations sur l’ajout d’une installation de diffusion en continu à votre application, consultez cette page.