Génération de composants de package MSIX

Cet article explique comment générer des composants de package MSIX pour empaqueter votre application avec des outils en ligne de commande (sans utiliser Visual Studio ni MSIX Packaging Tool).

Pour empaqueter manuellement votre application, vous devez créer un fichier manifeste du package, ajouter des composants de package, puis exécuter l’outil en ligne de commande MakeAppx.exe afin de générer un package MSIX.

D’abord, préparer le package

Si vous ne l’avez pas encore fait, consultez cette section sur ce qu’il faut savoir avant d’empaqueter votre application.

Créer un manifeste de package

Créez un fichier, nommez-le appxmanifest.xml, puis ajoutez-lui ce code XML.

Il s’agit d’un modèle de base qui contient les éléments et attributs dont votre package a besoin. Nous ajouterons des valeurs dans la section suivante.

<?xml version="1.0" encoding="utf-8"?>
<Package
	xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
  xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
  xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities">
  <Identity Name="" Version="" Publisher="" ProcessorArchitecture="" />
    <Properties>
       <DisplayName></DisplayName>
       <PublisherDisplayName></PublisherDisplayName>
			 <Description></Description>
      <Logo></Logo>
    </Properties>
    <Resources>
      <Resource Language="" />
    </Resources>
	  <Dependencies>
	  <TargetDeviceFamily Name="Windows.Desktop" MinVersion="" MaxVersionTested="" />
	  </Dependencies>
	  <Capabilities>
	    <rescap:Capability Name="runFullTrust"/>
	  </Capabilities>
    <Applications>
      <Application Id="" Executable="" EntryPoint="Windows.FullTrustApplication">
        <uap:VisualElements DisplayName="" Description=""	Square150x150Logo=""
				   Square44x44Logo=""	BackgroundColor="" />
      </Application>
     </Applications>
  </Package>

Renseigner les éléments au niveau du package de votre fichier

Renseignez ce modèle avec des informations décrivant votre package.

Informations d’identité

Voici un exemple d’élément Identity avec des espaces réservés pour les attributs. Vous pouvez définir l’attribut ProcessorArchitecture avec la valeur x64 ou x86.

<Identity Name="MyCompany.MySuite.MyApp"
          Version="1.0.0.0"
          Publisher="CN=MyCompany, O=MyCompany, L=MyCity, S=MyState, C=MyCountry"
			    ProcessorArchitecture="x64">

Notes

Si vous avez réservé le nom de votre application dans le Microsoft Store, vous pouvez obtenir le nom et l’éditeur à l’aide de l’Espace partenaires. Si vous prévoyez de charger votre application en sideloading sur d’autres systèmes, vous pouvez fournir vos propres noms tant que le nom d’éditeur que vous choisissez correspond au nom indiqué sur le certificat utilisé pour signer votre application.

Propriétés

L’élément Properties comprend 3 éléments enfants obligatoires. Voici un exemple de nœud Properties avec des espaces réservés pour les éléments. DisplayName est le nom de votre application (ce nom peut être réservé dans le Store pour les applications qui y sont chargées).

<Properties>
  <DisplayName>MyApp</DisplayName>
  <PublisherDisplayName>MyCompany</PublisherDisplayName>
  <Logo>images\icon.png</Logo>
</Properties>

Ressources

Voici un exemple de nœud Resources.

<Resources>
  <Resource Language="en-us" />
</Resources>

Dépendances

Pour les applications de bureau pour lesquelles vous créez un package, définissez toujours l’attribut Name avec la valeur Windows.Desktop.

<Dependencies>
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.14316.0" MaxVersionTested="10.0.15063.0" />
</Dependencies>

Fonctionnalités

Pour les applications de bureau pour lesquelles vous créez un package, vous devez ajouter la fonctionnalité runFullTrust.

<Capabilities>
  <rescap:Capability Name="runFullTrust"/>
</Capabilities>

Renseigner les éléments au niveau de l’application

Renseignez ce modèle avec des informations décrivant votre application.

Application, élément

Pour les applications de bureau pour lesquelles vous créez un package, l’attribut EntryPoint de l’élément Application est toujours Windows.FullTrustApplication.

<Applications>
  <Application Id="MyApp"     
		Executable="MyApp.exe" EntryPoint="Windows.FullTrustApplication">
   </Application>
</Applications>

Éléments visuels

Voici un exemple de nœud VisualElements.

<uap:VisualElements
	BackgroundColor="#464646"
	DisplayName="My App"
	Square150x150Logo="images\icon.png"
	Square44x44Logo="images\small_icon.png"
	Description="A useful description" />

(Facultatif) Ajouter des ressources sans plaque basées sur la cible

Les ressources basées sur la cible sont destinées aux icônes et vignettes qui apparaissent dans la barre des tâches Windows, dans les applications actives, dans l’affichage Alt+Tab, dans l’alignement automatique et dans le coin inférieur droit des vignettes de démarrage. Vous trouverez davantage de détails ici.

  1. Obtenez les images 44 x 44 correctes, puis copiez-les dans le dossier qui contient vos images (c’est-à-dire Assets).

  2. Pour chaque image 44 x 44, créez une copie dans le même dossier et ajoutez .targetsize-44_altform-unplated à la fin du nom de fichier. Vous devez avoir deux copies de chaque icône, chacune ayant un nom propre. Par exemple, à la fin du processus, votre dossier Assets peut contenir MYAPP_44x44.png et MYAPP_44x44.targetsize-44_altform-unplated.png.

    Notes

    Dans cet exemple, l’icône nommée MYAPP_44x44.png est celle que vous devez référencer dans l’attribut de logo de votre package MSIX.

  3. Dans le fichier manifeste, définissez BackgroundColor pour chaque icône que vous rendez transparente.

  4. Passez à la sous-section suivante pour générer un nouveau fichier d’index de ressource de package.

Générer un fichier d’index de ressource de package (PRI) avec MakePri

Si vous créez des ressources basées sur une cible comme décrit dans la section ci-dessus ou modifiez les actifs visuels de votre application après avoir créé le package, vous devez générer un nouveau fichier PRI.

Selon votre chemin d’installation du SDK, voici où se trouve MakePri.exe sur votre PC Windows 10 :

  • x86: C:\Program Files (x86)\Windows Kits\10\bin\<numéro de build>\x86\makepri.exe
  • x64: C:\Program Files (x86)\Windows Kits\10\bin\<numéro de build>\x64\makepri.exe

Il n’existe aucune version ARM de cet outil.

  1. Ouvrez une invite de commandes ou une fenêtre PowerShell.

  2. Accédez au dossier racine du package, puis exécutez la commande <path>\makepri.exe createconfig /cf priconfig.xml /dq en-US pour créer un fichier priconfig.xml.

  3. Créez le ou les fichiers resources.pri à l’aide de la commande <path>\makepri.exe new /pr <PHYSICAL_PATH_TO_FOLDER> /cf <PHYSICAL_PATH_TO_FOLDER>\priconfig.xml.

    Par exemple, la commande pour votre application peut ressembler à ceci : <path>\makepri.exe new /pr c:\MYAPP /cf c:\MYAPP\priconfig.xml.

  4. Empaquetez votre application en suivant les instructions de l’étape suivante.

Tester votre application avant l’empaquetage

Vous pouvez déployer votre application non empaquetée et la tester avant de l’empaqueter ou de la signer. Pour cela, exécutez l’applet de commande ci-dessous à partir d’une fenêtre PowerShell. Veillez à passer le fichier manifeste de votre application situé à la racine de votre répertoire de package avec tous les autres composants du package :

Add-AppxPackage –Register AppxManifest.xml

Ceci fait, votre application doit être déployée sur le système et vous pouvez la tester pour vérifier que tout fonctionne avant l’empaquetage. Pour mettre à jour les fichiers .exe ou .dll de votre application, remplacez les fichiers existants dans votre package par les nouveaux, augmentez le numéro de version dans AppxManifest.xml, puis réexécutez la commande ci-dessus.

Créer un package MSIX de vos composants

L’étape suivante consiste à utiliser MakeAppx.exe afin de générer un package MSIX pour votre application. Makeappx.exe est inclus avec le SDK Windows 10. Si vous avez installé Visual Studio, il est facilement accessible par le biais de l’invite de commandes développeur pour Visual Studio.

Consultez Créer un package ou un bundle MSIX avec l’outil MakeAppx.exe.

Notes

Une application empaquetée s’exécute toujours en tant qu’utilisateur interactif, et tout lecteur sur lequel vous installez votre application empaquetée doit être formaté en NTFS.