Créer un raccourci d’application en exécutant un script à l’aide de Package Support Framework

Ce document vous montre comment créer des raccourcis d’application à l’aide de l’infrastructure de support de package (PSF) qui exécutent des scripts via MSIX Packaging Tool et l’application CONTOSO Expense WPF.

contoso expenses

L’idée est de copier le raccourci d’application, qui sera disponible dans le package, sur le Bureau de l’utilisateur via les scripts PSF.

Il y a quelques choses à garder à l’esprit :

  1. Créez uniquement un raccourci s’ils sont absolument nécessaires. L’objectif est de ne pas encombrer le bureau de l’utilisateur.
  2. L’application MSIX doit être installée avant de créer le raccourci, afin que nous puissions spécifier le chemin d’accès de l’application MSIX lors de la création du raccourci.
  3. En même temps, le chemin d’accès de l’application MSIX peut changer, une fois le numéro de version spécifié dans le dossier d’installation. Exemple de chemin d’installation de Contoso Expenses :

C:\Program Files\WindowsApps\ContosoExpenses_1.0.0.0_x86__3z09h3y28h0qg

Pour éviter d’avoir à modifier le raccourci de l’application chaque fois que l’application est mise à jour, créez le raccourci en pointant vers AppExecutionAlias. AppExecutionAlias lui permet de lancer l’application avec la valeur définie dans la session d’alias du manifeste de l’application. Il n’est donc pas nécessaire de spécifier le chemin complet de l’application. Par conséquent, avant de créer le raccourci, définissez l’alias dans le manifeste de l’application. Sinon, Windows Explorateur ne reconnaît pas l’alias et ne nous permet pas de créer le raccourci.

Créer l’alias d’application

Cliquez sur l’élément de menu Informations sur le package , puis sur Ouvrir le fichier, disponible en bas de l’interface utilisateur, pour modifier le manifeste de l’application :

open msix manifest

Incluez les espaces de noms suivants, qui seront utilisés pour créer l’alias, comme suit :

xmlns:uap3="http://schemas.microsoft.com/appx/manifest/uap/windows10/3" xmlns:desktop="http://schemas.microsoft.com/appx/manifest/desktop/windows10" 

Incluez la valeur uap3 et le bureau dans l’élément IgnorableNamespaces :

IgnorableNamespaces="uap uap3 desktop rescap build"

Incluez l’alias d’exécution de l’application après l’élément </uap:VisualElements> :

  <Extensions>
    <uap3:Extension Category="windows.appExecutionAlias"   
                    Executable="ContosoExpenses\ContosoExpenses.exe"
                    EntryPoint="Windows.FullTrustApplication">
      <uap3:AppExecutionAlias>
        <desktop:ExecutionAlias Alias="contosoexpenses.exe" />
        </uap3:AppExecutionAlias>
      </uap3:Extension>
  </Extensions>

Suit le manifeste avec les modifications :

create alias

Enregistrez et fermez le fichier manifeste.

Revenez à l’outil d’empaquetage MSIX et générez un nouveau package. Une fois le package créé, installez le package et démarrez l’application via l’alias, par exemple, en appuyant sur Win+R et en tapant contosoexpenses :

launch using alias

Maintenant que l’alias est créé, il est possible de passer aux étapes suivantes.

Créer le raccourci d’application

Créez un raccourci d’application dans un dossier de votre préférence à l’aide de l’alias contosoexpenses.exe, comme suit :

new app shortcut

Nommez le raccourci pour Contoso Expenses :

new app finish creating shortcut

Par défaut, le raccourci est une icône générique :

generic app shortcut

La modification du raccourci est simple, mais le défi ici est d’éviter d’utiliser le chemin d’accès complet de l’application qui a le numéro de version et qui peut changer dans une prochaine mise à jour. Pour résoudre ce problème, copiez l’icône du package vers le dossier %appdata% utilisé par l’application MSIX, c’est-à-dire le dossier %localappdata%\Packages\ContosoExpenses_3z09h3y28h0qg\LocalCache\Roaming_ qui n’a pas de numéro de version.

Pour modifier le raccourci de l’application, pour l’instant, il est nécessaire de copier manuellement l’icône dans ce dossier. Cette opération sera automatisée ultérieurement à l’aide de scripts PSF.

appdata shortcut

À présent, il est possible de remplacer l’icône de raccourci par le chemin %localappdata% :

new path shortcut

Toujours dans les propriétés de raccourci, tirez parti et modifiez les valeurs de la cible et démarrez dans les propriétés para %localappdata%\Microsoft\WindowsApps\contosoexpenses.exe e %localappdata%\Microsoft\WindowsApps respectivement :

new values shortcut

Maintenant que le raccourci fonctionne, l’étape suivante consiste à l’ajouter au package et à automatiser le processus de création.

new shortcut

Obtenir les fichiers PSF

Téléchargez le PSFBinaries.zip à partir du dépôt Github PSF.

psf from github releases

Extrayez les fichiers 32 bits ou 64 bits requis à la racine de votre répertoire de package, selon que votre application est 32 ou 64 bits. Inspirez-vous du tableau suivant.

L’exécutable de l’application est x64 L’exécutable de l’application est x86
PSFLauncher64.exe PSFLauncher32.exe
PSFRuntime64.dll PSFRuntime32.dll

Inclure les fichiers PSF dans le package

Modifiez l’outil Contoso Expense through MSIX Packaging Tool :

psf from github edit mpt

Cliquez sur l’élément de menu Fichiers de package , cliquez avec le bouton droit dans le dossier Package , puis sélectionnez Ajouter un fichier...:

psf from github add psf files

Étant donné que la build ContosoExpense est 32 bits, elle a été ajoutée aux fichiers requis PSF 32 bits. Le contenu de votre package doit maintenant ressembler à ceci :

psf from github psf added files

Mettre à jour le manifeste du package pour PSF

Cliquez sur l’élément de menu Informations sur le package , puis sur Ouvrir le fichier, disponible en bas de l’interface utilisateur, pour modifier le manifeste de l’application :

psf from github edit manifest

Dans cette étape, il est nécessaire de modifier le point d’entrée de l’application (ContosoExpenses\ContosoExpenses.exe) par le PSFLauncher32.exe.

 <Application Id="App" Executable="PSFLauncher32.exe" EntryPoint="Windows.FullTrustApplication">

Enregistrez et fermez le fichier manifeste.

Créer le fichier config.json

Revenez à l’outil MSIX Packaging Tool, cliquez sur Fichiers de package, sélectionnez le dossier Package et ajoutez un nouveau fichier config.json avec le contenu suivant.

{
  "applications": [
    {
      "id": "App",
      "executable": "ContosoExpenses\\ContosoExpenses.exe",
      "workingDirectory": "ContosoExpenses\\",
      "startScript":
      {
        "scriptPath": "createshortcut.ps1",
        "runInVirtualEnvironment": false,
        "waitForScriptToFinish": true,
        "showWindow": false,
        "runOnce": true
      }
    }
  ]
}

👀 Notez que l’ID d’application est le même à partir du manifeste :

Le fichier config.json doit être créé à la racine du package, comme suit :

psf from github

Le fichier config.json est utilisé pour spécifier que le script createshortcut.ps1 ne doit s’exécuter qu’une seule fois dans la première initialisation de l’application. À mesure que le répertoire de travail est défini sur ContosoExpenses, le script createshortcut.ps1 (qui sera créé ultérieurement) et le script StartingScriptWrapper.ps1 (à partir de fichiers PSF) doit être ajouté au dossier ContosoExpenses .

Créer le script PowerShell

Créez le script createshortcut.ps1 avec le contenu suivant :

Copy-Item "Contoso Expenses.lnk" "$env:USERPROFILE\desktop\Contoso Expenses.lnk"

Copy-Item "contoso.ico" $env:APPDATA\contoso.ico

Le script createshortcut.ps1 copie le raccourci « Contoso Expenses.lnk », créé précédemment et disponible dans le package, sur le bureau de l’utilisateur. La deuxième instruction copie contoso.icon dans le dossier MSIX APPDATA (%localappdata%\Packages\ContosoExpenses_3z09h3y28h0qg\LocalCache\Roaming).

L’étape suivante consiste à copier les fichiers suivants dans le dossier ContosoExpenses du package :

  • Contoso Expenses.lnk
  • Contoso.ico
  • StartingScriptWrapper.ps1
  • createshortcut.ps1

Enfin, la dernière étape consiste à créer et installer la nouvelle version du package d’application. Lors de la première initialisation de l’application, le script createshortcut.ps1 s’exécute et crée le raccourci Contoso Expense dans le Bureau utilisateur.