CustomInstallActions
L’élément CustomInstallActions contient toutes les définitions indiquant quelles actions d’installation personnalisées doivent être exécutées et à quel moment. Vous ne pouvez déclarer qu’une seule instance de cet élément dans votre fichier MicrosoftGame.config. Il comporte un élément enfant obligatoire, Folder, qui est une chaîne désignant le dossier contenant tous les fichiers requis pour l’ensemble des actions personnalisées. Ce dossier peut contenir des sous-dossiers. Il vous incombe de vous assurer que le package comprend toutes les dépendances des exécutables des actions personnalisées, et que celles-ci se trouvent dans le chemin de chargement approprié pour chacun d’eux.Lorsque vous créez le package du titre,
makepkg traduit cet élément CustomInstallActions en extension MSIX windows.customInstall dans le fichier appxmanifest.xml généré, où l’élément équivalent est <CustomInstall> et où Folder est exprimé sous forme d’attribut. Vous n’avez pas à rédiger vous-même cette forme <CustomInstall> : dans MicrosoftGame.config, Folder est un élément enfant de CustomInstallActions, comme le montrent les exemples de la section Modifications du fichier de configuration du jeu plus loin dans cet article.Vous ne devez placer aucun des exécutables principaux du jeu ni aucun autre fichier dans le dossier désigné. Il est explicitement réservé aux fichiers d’installation personnalisée.
Types d’actions
Les trois nœuds enfants de l’extension d’installation personnalisée déterminent le moment où certaines actions personnalisées sont exécutées. Il existe trois types d’actions d’installation personnalisées.- Action d’installation : actions que la plateforme exécute avant le premier démarrage de l’application
- Action de réparation : actions exécutées lorsque l’utilisateur sélectionne Réparer ou Réinitialiser
- Action de désinstallation : actions exécutées lorsque l’utilisateur désinstalle l’application
Malgré son nom, une action d’installation ne s’exécute pas lorsque le package est installé. Chaque type d’action s’exécute à un moment précis du cycle de vie de l’application, et une InstallAction s’exécute une seule fois, immédiatement avant le premier lancement du titre (c’est le premier moment où la plateforme peut afficher l’invite UAC requise). « Install », « Repair » et « Uninstall » désignent la catégorie du cycle de vie à laquelle appartient l’action, et non le moment où elle s’exécute. Si vous avez besoin d’effectuer un travail au moment réel de l’installation ou du téléchargement du package, les actions d’installation personnalisées ne sont pas le mécanisme approprié. Pour la séquence complète, consultez Utilisation des actions personnalisées.
L’action de désinstallation n’est exécutée que si une action d’installation ou de réparation a été exécutée. Le système utilise la propriété Name pour suivre cet état. C’est pourquoi il est important que les actions d’installation, de réparation et de désinstallation portent le même Name.
Composantes d’une action
File
Pour chaque action, vous devez spécifier le fichier à exécuter, et ce fichier doit se trouver dans votre package. Si vous spécifiez un chemin, il sera implicitement relatif au chemin Folder de votre élément CustomInstallActions. Vous ne pouvez pas spécifier de chemin absolu. Votre chemin ne doit pas commencer par une barre oblique inverse (\).Name
Vous devez spécifier un Name pour l’action. Ce Name doit être unique au sein du nœud Actions parent, mais peut être partagé entre différents nœuds Actions. Par exemple, vous pourriez spécifier File=“MySetup.exe” et Name=“abc123” à la fois comme InstallAction et comme RepairAction. Par contre, si vous avez deux éléments InstallAction, chacun doit avoir un Name différent. Vous devriez utiliser le même Name pour le même exécutable d’une version de package à l’autre, tant que cet exécutable ne change pas. Le Name sert d’identité à l’action et permet à la plateforme de suivre les actions qui ont été exécutées avec succès, ainsi que celles qui doivent être exécutées pour un package mis à jour. Si un package mis à jour spécifie une action personnalisée dont le Name a déjà été exécuté avec succès, la plateforme ignore cette action lors de la mise à jour.Une différence dans la liste des arguments ne constitue pas une différence d’identité. Si vous souhaitez exécuter le même exécutable avec des arguments différents dans un package mis à jour, vous devez fournir un Name différent. Il vous incombe de configurer correctement les Names que vous déclarez et d’en assurer le suivi d’une version à l’autre.
Arguments
Chaque action d’installation personnalisée comporte un troisième élément, argument, qui vous permet d’inclure les arguments nécessaires à l’exécution de la commande du composant redistribuable.Utilisation des actions personnalisées
L’installation d’un logiciel anti-triche exige généralement que l’utilisateur dispose de privilèges d’administrateur et, de manière générale (puisque les actions personnalisées constituent une fonctionnalité extrêmement puissante), la plateforme exige des privilèges d’administrateur pour tout package comportant des actions personnalisées. Pour les opérations exécutées avec des privilèges d’administrateur, Windows exige l’affichage d’une invite de contrôle de compte d’utilisateur (UAC) lors de la première exécution de l’application. Le flux de travail de l’utilisateur est le suivant.- La page du Microsoft Store du jeu comprend une description des exigences, notamment si l’installation requiert des privilèges élevés, si l’installation exécute une action personnalisée et ce que cela pourrait signifier pour l’utilisateur. Ces informations sont fournies afin que l’utilisateur puisse prendre une décision éclairée quant à l’achat du jeu.
- Si l’utilisateur accepte les contraintes et les implications, il sélectionne Installer.
- La plateforme détecte que le package comprend une action personnalisée et enregistre le fait que l’action personnalisée doit être exécutée. Toutefois, elle n’exécute pas l’action personnalisée pendant la phase d’installation initiale. Toute action personnalisée est plutôt exécutée la première fois que l’utilisateur lance le jeu.
- Lors du premier lancement du jeu, au moment où la plateforme s’apprête à exécuter les actions personnalisées, elle affiche une invite UAC. L’utilisateur doit alors fournir des informations d’identification d’administrateur et accepter l’élévation. Même si un package contient plusieurs actions personnalisées, l’utilisateur ne reçoit qu’une seule invite UAC. Aucune autre invite UAC n’est affichée pour les mises à jour, sauf si une ou plusieurs des actions personnalisées ont changé. Une invite UAC est affichée lors de la désinstallation du jeu.
Les actions d’installation personnalisées sont prises en charge uniquement dans le package MSIXVC principal. Elles ne sont pas prises en charge dans les packages d’infrastructure, les packages facultatifs, les packages de modification ou tout autre type de package.
Les actions personnalisées d’installation, de réparation et de désinstallation sont exécutées par le pipeline de déploiement commercial du Microsoft Store. Elles ne sont pas exécutées lorsque vous installez le package localement à des fins de développement, par exemple lorsque vous installez un fichier
.msixvc libre à l’aide de wdApp install ou que vous inscrivez un package à l’aide de Add-AppxPackage. Une installation de développement locale vous permet tout de même de vérifier que votre package déclare correctement les actions (elles apparaissent dans le fichier appxmanifest.xml généré sous forme d’extension windows.customInstall), mais les exécutables des actions personnalisées eux-mêmes ne sont pas appelés dans ce cas. Pour valider l’exécution complète des actions, installez le titre au moyen d’un flux du Store ou d’un bac à sable.