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.
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 :
- Créez un raccourci uniquement s’ils sont absolument nécessaires. L’objectif est de ne pas encombrer le bureau de l’utilisateur.
- 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.
- 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 :
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 :
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 :
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 :
Nommez le raccourci pour Contoso Expenses :
Par défaut, le raccourci est une icône 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.
Maintenant, il est possible de remplacer l’icône de raccourci par le chemin %localappdata% :
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 :
Maintenant que le raccourci fonctionne, l’étape suivante consiste à l’ajouter au package et à automatiser le processus de création.
Obtenir les fichiers PSF
Téléchargez le PSFBinaries.zip à partir du référentiel Github PSF.
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 :
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... :
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 :
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 :
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 :
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.