CustomInstallActions
L’élément CustomInstallActions contient toutes les définitions des actions d’installation personnalisées à exécuter et du moment où elles doivent l’être. 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, une chaîne qui désigne le dossier contenant tous les fichiers nécessaires à l’ensemble des actions personnalisées. Ce dossier peut contenir des sous-dossiers. Il vous incombe de vous assurer que le package inclut 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 empaquetez le 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>, avec Folder exprimé sous forme d’attribut. Vous ne créez pas 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é par Folder. 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 exécutées par la plateforme 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 lors de l’installation du package. 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 devez effectuer une opération 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 adapté. Consultez Utilisation des actions personnalisées pour la séquence complète.
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.
Composants 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 est implicitement relatif au chemin Folder de 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 pouvez spécifier File=“MySetup.exe” et Name=“abc123” à la fois pour une InstallAction et une RepairAction. En revanche, si vous avez deux éléments InstallAction, chacun doit avoir un Name différent. Vous devez 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 l’être 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 vos Names déclarés de manière appropriée et de les suivre d’une version à l’autre.
Arguments
Chaque action d’installation personnalisée comporte un troisième élément, argument, qui vous permet d’inclure tous 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 nécessite généralement que l’utilisateur dispose de privilèges d’administrateur et, de manière générale (car 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 utilisateur est le suivant.- La page du jeu dans le Microsoft Store inclut une description des exigences, notamment si l’installation nécessite des privilèges élevés, si elle exécute une action personnalisée et ce que cela peut impliquer 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 inclut une action personnalisée et enregistre le fait que celle-ci doit être exécutée. Toutefois, elle n’exécute pas l’action personnalisée pendant la phase d’installation initiale. Les actions personnalisées sont exécutées la première fois que l’utilisateur lance le jeu.
- Au 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 actions personnalisées ont changé. Une invite UAC s’affiche lors de la désinstallation du jeu.
Les actions d’installation personnalisées ne sont prises en charge que dans le package MSIXVC principal. Elles ne sont pas prises en charge dans les packages de framework, les packages facultatifs, les packages de modification ni dans aucun 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 via un flux Store ou sandbox.