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 Package Support Framework (PSF) qui exécutent des scripts via l’outil d’empaquetage MSIX et l’application CONTOSO Expense WPF.

dépenses de contoso

L’idée est de copier le raccourci d’application, qui sera disponible à l’intérieur du package, sur le bureau de l’utilisateur via les scripts PSF.

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

  1. Créez un raccourci uniquement 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 qu’il a 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 d’accès 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 Explorer ne reconnaîtra pas l’alias et ne nous permettra pas de créer le raccourci.

Créer l’alias d’application

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

ouvrir le manifeste msix

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 desktop 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 :

créer un 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 :

lancer à l’aide d’un 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 choix à l’aide de l’alias contosoexpenses.exe, comme suit :

raccourci de nouvelle application

Nommez le raccourci pour Contoso Expenses :

nouvelle application termine la création du raccourci

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

raccourci d’application générique

La modification du raccourci est simple, mais le défi consiste ici à éviter d’utiliser le chemin d’accès complet de l’application qui a le numéro de version et qui peut changer lors d’une prochaine mise à jour. Une façon de résoudre ce problème consiste à copier 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. Cela sera automatisé ultérieurement à l’aide de scripts PSF.

raccourci appdata

Maintenant, il est possible de remplacer l’icône de raccourci par le chemin %localappdata% :

nouveau raccourci de chemin d’accès

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

raccourci de nouvelles valeurs

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

nouveau raccourci

Obtenir les fichiers PSF

Téléchargez le PSFBinaries.zip à partir du référentiel Github PSF.

psf à partir des versions github

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 d’application est x64 L’exécutable d’application est x86
PSFLauncher64.exe PSFLauncher32.exe
PSFRuntime64.dll PSFRuntime32.dll

Inclure les fichiers PSF dans le package

Modifiez contoso Expense via l’outil d’empaquetage MSIX :

psf à partir de github modifier mpt

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

psf à partir de github ajouter des fichiers psf

Comme la build ContosoExpense est 32 bits, les fichiers PSF 32 bits requis ont été ajoutés. Le contenu de votre package doit maintenant ressembler à ceci :

psf à partir de github psf ajoutés fichiers

Mettre à jour le manifeste de package pour PSF

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

psf à partir du manifeste de modification github

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 d’empaquetage MSIX, 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 dans le manifeste :

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

psf à partir de github

Le fichier config.json est utilisé pour spécifier que le script createshortcut.ps1 ne doit s’exécuter qu’une seule fois lors de la première initialisation de l’application. Comme 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) doivent être ajoutés 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 à l’intérieur du package, sur le bureau de l’utilisateur. La deuxième instruction copie l’icône contoso.icon dans le dossier APPDATA MSIX (%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 de l’utilisateur.