Creare un collegamento all'applicazione eseguendo uno script usando Package Support Framework

Questo documento illustra come creare collegamenti alle applicazioni usando Package Support Framework (PSF) che eseguono script tramite MSIX Packaging Tool e l'applicazione WPF Contoso Expense.

contoso expenses

L'idea è copiare il collegamento dell'applicazione, che sarà disponibile all'interno del pacchetto, sul desktop dell'utente tramite gli script PSF.

È necessario tenere presenti due aspetti:

  1. Creare un collegamento solo se sono assolutamente necessari. L'obiettivo è quello di non creare confusione sul desktop dell'utente.
  2. L'applicazione MSIX deve essere installata prima di creare il collegamento, in modo che sia possibile specificare il percorso dell'applicazione MSIX durante la creazione del collegamento.
  3. Allo stesso tempo, il percorso dell'applicazione MSIX può cambiare, dopo aver specificato il numero di versione nella cartella di installazione. Esempio del percorso di installazione Contoso Expenses:

C:\Programmi\WindowsApps\ContosoExpenses_ 1.0.0.0 _x86__3z09h3y28h0qg

Per evitare di dover modificare il collegamento dell'applicazione ogni volta che l'applicazione viene aggiornata, creare il collegamento puntando a AppExecutionAlias. AppExecutionAlias consente di avviare l'applicazione con il valore definito nella sessione alias del manifesto dell'applicazione, quindi non è necessario specificare il percorso completo dell'applicazione. Pertanto, prima di creare il collegamento, definire l'alias nel manifesto dell'applicazione. In caso Windows Explorer non riconoscerà l'alias e non consentirà di creare il collegamento.

Creare l'alias dell'applicazione

Fare clic sulla voce di menu Informazioni sul pacchetto e fare clic su Apri file, disponibile nella parte inferiore dell'interfaccia utente, per modificare il manifesto dell'applicazione:

aprire il manifesto msix

Includere gli spazi dei nomi seguenti, che verranno usati per creare l'alias, come indicato di seguito:

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

Includere il valore uap3 e desktop nell'elemento IgnorableNamespaces:

IgnorableNamespaces="uap uap3 desktop rescap build"

Includere l'alias di esecuzione dell'applicazione dopo<'elemento /uap:VisualElements> seguente:

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

Segue il manifesto con le modifiche:

creare un alias

Salvare e chiudere il file manifesto.

Tornare a MSIX Packaging Tool e generare un nuovo pacchetto. Dopo aver creato il pacchetto, installare il pacchetto e avviare l'applicazione tramite l'alias , ad esempio premendo Win+R e digitando contosoexpenses:

avviare usando l'alias

Ora che l'alias è stato creato, è possibile procedere con i passaggi successivi.

Creare il collegamento all'applicazione

Creare un nuovo collegamento all'applicazione in una cartella di propria preferenza usando l'alias contosoexpenses.exe, come indicato di seguito:

collegamento per la nuova app

Assegnare al collegamento il nome Contoso Expenses:

Nuova app - Completare la creazione del collegamento

Per impostazione predefinita, il collegamento sarà un'icona generica:

collegamento all'app generica

La modifica del collegamento è semplice, ma la sfida consiste nell'evitare di usare il percorso completo dell'applicazione con il numero di versione e che potrebbe cambiare in un aggiornamento futuro. Un modo per risolvere questo problema è copiare l'icona dal pacchetto alla cartella %appdata% usata dall'applicazione MSIX, ad esempio la cartella %localappdata%\Packages\ContosoExpenses_3z09h3y28h0qg\LocalCache\Roaming _ che non ha il numero di versione.

Per modificare il collegamento all'applicazione, per il momento è necessario copiare manualmente l'icona in tale cartella. Questa operazione verrà automatizzata in un secondo momento usando gli script PSF.

Collegamento appdata

A questo punto, è possibile modificare l'icona del collegamento nel percorso %localappdata%:

collegamento a un nuovo percorso

Sempre nelle proprietà del collegamento, sfruttare e modificare i valori della destinazione e iniziare rispettivamente nelle proprietà para %localappdata%\Microsoft\WindowsApps\contosoexpenses.exe e %localappdata%\Microsoft\WindowsApps:

collegamento per i nuovi valori

Ora che il collegamento funziona, il passaggio successivo consiste nell'aggiungerlo al pacchetto e automatizzare il processo di creazione.

nuovo collegamento

Ottenere i file PSF

Scaricare il PSFBinaries.zip dal repository GitHub di PSF.

psf dalle versioni di GitHub

Estrarre i file a 32 bit o a 64 bit necessari nella radice della directory del pacchetto, a seconda che l'applicazione sia a 32 o a 64 bit. Usa la tabella seguente come riferimento.

Il file eseguibile dell'applicazione è x64 Il file eseguibile dell'applicazione è x86
PSFLauncher64.exe PSFLauncher32.exe
PSFRuntime64.dll PSFRuntime32.dll

Includere i file PSF nel pacchetto

Modificare Contoso Expense tramite MSIX Packaging Tool:

psf from github edit mpt

Fare clic sulla voce di menu File pacchetto, fare clic con il pulsante destro del mouse sulla cartella Pacchetto e selezionare Aggiungi file:

psf da github aggiungere file psf

Poiché la build di ContosoExpense è a 32 bit, sono stati aggiunti i file psf necessari a 32 bit. Il contenuto del pacchetto dovrebbe ora essere simile al seguente:

psf da github psf added files

Aggiornare il manifesto del pacchetto per PSF

Fare clic sulla voce di menu Informazioni sul pacchetto e fare clic su Apri file, disponibile nella parte inferiore dell'interfaccia utente, per modificare il manifesto dell'applicazione:

psf da github modifica manifesto

In questo passaggio è necessario modificare il punto di ingresso dell'applicazione (ContosoExpenses\ContosoExpenses.exe) dal PSFLauncher32.exe.

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

Salvare e chiudere il file manifesto.

Creare il config.jsnel file

Tornare a MSIX Packaging Tool, fare clic su Package files(File pacchetto), selezionare la cartella Package (Pacchetto) e aggiungere un nuovo config.jsnel file con il contenuto seguente.

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

👀 Si noti che l'ID applicazione è lo stesso dal manifesto:

Il config.jssul file deve essere creato nella radice del pacchetto, come indicato di seguito:

psf da GitHub

Il config.jssul file viene usato per specificare che lo scriptcreateshortcut.ps1deve essere eseguito una sola volta nella prima inizializzazione dell'applicazione. Poiché la directory di lavoro è impostata su ContosoExpenses, lo script createshortcut.ps1 (che verrà creato in seguito) e lo script StartingScriptWrapper.ps1 (da file PSF) devono essere aggiunti alla cartella ContosoExpenses.

Creare lo script di PowerShell

Creare lo script createshortcut.ps1 con il contenuto seguente:

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

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

Lo script createshortcut.ps1 copia sul desktop dell'utente il collegamento "Contoso Expenses.lnk", creato in precedenza e che sarà disponibile all'interno del pacchetto. La seconda istruzione copia il file contoso.icon nella cartella MSIX APPDATA (%localappdata%\Packages\ContosoExpenses_3z09h3y28h0qg\LocalCache\Roaming. )

Il passaggio successivo consiste nel copiare i file seguenti nella cartella ContosoExpenses del pacchetto:

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

Infine, l'ultimo passaggio consiste nel creare e installare la nuova versione del pacchetto dell'applicazione. Durante la prima inizializzazione dell'applicazione, createshortcut.ps1 verrà eseguito lo script e verrà creato il collegamento Contoso Expense nel desktop dell'utente.