Erstellen einer Anwendungsverknüpfung durch Ausführen eines Skripts mithilfe des Paketsupportframeworks

In diesem Dokument wird gezeigt, wie Sie Anwendungsverknüpfungen mithilfe von Package Support Framework (PSF) erstellen, die Skripts über das MSIX Packaging Tool und die Contoso Expense WPF-Anwendung ausführen.

Contoso-Ausgaben

Die Idee besteht darin, die Anwendungsverknüpfung zu kopieren, die innerhalb des Pakets verfügbar ist, in den Desktop des Benutzers über die PSF-Skripts.

Es gibt einige Dinge, die Sie berücksichtigen sollten:

  1. Erstellen Sie nur eine Verknüpfung, wenn sie unbedingt erforderlich sind. Das Ziel besteht darin, den Desktop des Benutzers nicht zu überladen.
  2. Die MSIX-Anwendung muss vor dem Erstellen der Verknüpfung installiert werden, damit wir den MSIX-Anwendungspfad während der Verknüpfungserstellung angeben können.
  3. Gleichzeitig kann sich der MSIX-Anwendungspfad ändern, sobald er die versionsnummer im Installationsordner angegeben hat. Beispiel für den Installationspfad "Contoso-Kosten ":

C:\Programme\WindowsApps\ContosoExpenses_1.0.0.0_x86__3z09h3y28h0qg

Um zu vermeiden, dass die Anwendungsverknüpfung jedes Mal geändert werden muss, wenn die Anwendung aktualisiert wird, erstellen Sie die Verknüpfung, indem Sie auf die AppExecutionAlias zeigen. Die AppExecutionAlias ermöglicht es, die Anwendung mit dem wert zu starten, der in der Aliassitzung des Anwendungsmanifests definiert ist, sodass kein vollständiger Anwendungspfad angegeben werden muss. Definieren Sie daher vor dem Erstellen der Verknüpfung den Alias im Anwendungsmanifest. Andernfalls erkennt Windows Explorer den Alias nicht und ermöglicht es uns nicht, die Verknüpfung zu erstellen.

Erstellen des Anwendungsalias

Klicken Sie auf das Menüelement "Paketinformationen ", und klicken Sie auf " Datei öffnen", die unten auf der Benutzeroberfläche verfügbar ist, um das Anwendungsmanifest zu bearbeiten:

msix-Manifest öffnen

Schließen Sie die folgenden Namespaces ein, die zum Erstellen des Alias verwendet werden, wie folgt:

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

Schließen Sie den Wert uap3 und desktop in das IgnorableNamespaces-Element ein:

IgnorableNamespaces="uap uap3 desktop rescap build"

Schließen Sie den Ausführungsalias der Anwendung nach dem </uap:VisualElements-Element> ein:

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

Folgt dem Manifest mit den Änderungen:

Alias erstellen

Speichern und schließen Sie die Manifestdatei.

Wechseln Sie zurück zum MSIX Packaging Tool, und generieren Sie ein neues Paket. Nachdem das Paket erstellt wurde, installieren Sie das Paket , und starten Sie die Anwendung über den Alias, z. B. durch Drücken von Win+R und Eingeben von contosoexpenses:

Starten mit Alias

Nachdem der Alias erstellt wurde, ist es möglich, mit den nächsten Schritten fortzufahren.

Erstellen der Anwendungsverknüpfung

Erstellen Sie eine neue Anwendungsverknüpfung in einem Ordner Ihrer Einstellung mithilfe des Alias contosoexpenses.exe, wie folgt:

Neue App-Verknüpfung

Benennen Sie die Verknüpfung für Contoso-Ausgaben:

Neue App fertig mit dem Erstellen einer Verknüpfung

Standardmäßig ist die Verknüpfung ein generisches Symbol:

generische App-Verknüpfung

Das Ändern der Verknüpfung ist einfach, aber die Herausforderung besteht darin, die Verwendung des vollständigen Anwendungspfads mit der Versionsnummer zu vermeiden und die sich in einem zukünftigen Update ändern kann. Eine Möglichkeit, dies zu lösen, besteht darin, das Symbol aus dem Paket in die von der MSIX-Anwendung verwendete %appdata% zu kopieren, d. h. die %localappdata%\Packages\ContosoExpenses_3z09h3y28h0qg\LocalCache\Roaming_ Ordner, der keine Versionsnummer hat.

Um die Anwendungsverknüpfung zu ändern, ist es jetzt erforderlich, das Symbol manuell in diesen Ordner zu kopieren. Dies wird später mithilfe von PSF-Skripts automatisiert.

Appdata-Verknüpfung

Jetzt ist es möglich, das Verknüpfungssymbol in den Pfad %localappdata% zu ändern:

Neue Pfadverknüpfung

Nutzen Sie die Werte des Ziels und beginnen Sie in den Eigenschaften para %localappdata%\Microsoft\WindowsApps\contosoexpenses.exe e %localappdata%\Microsoft\WindowsApps entsprechend:

Verknüpfung mit neuen Werten

Nachdem die Verknüpfung nun funktioniert, besteht der nächste Schritt darin, es dem Paket hinzuzufügen und den Erstellungsprozess zu automatisieren.

Neue Verknüpfung

Abrufen der PSF-Dateien

Laden Sie die PSFBinaries.zip aus dem PSF GitHub-Repo herunter.

psf aus github-Versionen

Extrahieren Sie die erforderlichen 32-Bit- oder 64-Bit-Dateien in das Stammverzeichnis Ihres Paketverzeichnisses, je nachdem, ob Ihre Anwendung 32 oder 64-Bit ist. Orientieren Sie sich an der folgenden Tabelle.

Ausführbare Anwendungsdatei ist x64 Ausführbare Anwendung ist x86
PSFLauncher64.exe PSFLauncher32.exe
PSFRuntime64.dll PSFRuntime32.dll

Einschließen der PSF-Dateien in das Paket

Bearbeiten Sie die Contoso-Spesenkosten über das MSIX-Verpackungstool :

psf von github edit mpt

Klicken Sie auf das Menüelement "Paketdateien ", klicken Sie mit der rechten Schaltfläche im Ordner "Paket ", und wählen Sie " Datei hinzufügen" aus:

psf von github add psf files

Da der ContosoExpense-Build hier 32-Bit ist, wurde es die PSF 32-Bit-erforderlichen Dateien hinzugefügt. Ihr Paketinhalt sollte nun wie folgt aussehen:

psf von github psf hinzugefügte Dateien

Aktualisieren des Paketmanifests für PSF

Klicken Sie auf das Menüelement "Paketinformationen ", und klicken Sie auf " Datei öffnen", die unten auf der Benutzeroberfläche verfügbar ist, um das Anwendungsmanifest zu bearbeiten:

psf aus GitHub-Bearbeitungsmanifest

In diesem Schritt ist es erforderlich, den Anwendungseintragspunkt (ContosoExpenses\ContosoExpenses.exe) durch die PSFLauncher32.exe zu ändern.

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

Speichern und schließen Sie die Manifestdatei.

Erstellen der Datei config.json

Wechseln Sie zurück zum MSIX-Verpackungstool, klicken Sie auf "Paketdateien", wählen Sie den Ordner "Paket" aus, und fügen Sie eine neue Datei "config.json" mit dem folgenden Inhalt hinzu.

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

👀 Beachten Sie, dass die Anwendungs-ID im Manifest identisch ist:

Die Datei config.json muss im Paketstamm wie folgt erstellt werden:

psf von github

Die Datei config.json wird verwendet, um anzugeben, dass das skriptcreateshortcut.ps1 nur einmal in der ersten Anwendungsinitialisierung ausgeführt werden soll. Da das Arbeitsverzeichnis auf ContosoExpenses festgelegt ist, muss das createshortcut.ps1-Skript (das später erstellt wird) und das StartingScriptWrapper.ps1-Skript (aus PSF-Dateien) dem Ordner "ContosoExpenses " hinzugefügt werden.

Erstellen des PowerShell-Skripts

Erstellen Sie das skript createshortcut.ps1 mit dem folgenden Inhalt:

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

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

Das skript createshortcut.ps1 kopiert die verknüpfung "Contoso Expenses.lnk" , die zuvor erstellt wurde und innerhalb des Pakets verfügbar ist, auf den Benutzerdesktop. Die zweite Anweisung kopiert das Contoso.icon in den MSIX APPDATA-Ordner (%localappdata%\Packages\ContosoExpenses_3z09h3y28h0qg\LocalCache\Roaming).

Der nächste Schritt besteht darin, die folgenden Dateien in den Ordner "ContosoExpenses" des Pakets zu kopieren:

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

Schließlich besteht der letzte Schritt darin, die neue Version des Anwendungspakets zu erstellen und zu installieren . Während der ersten Anwendungsinitialisierung wird das skriptcreateshortcut.ps1 ausgeführt und erstellt die Contoso-Spesenverknüpfung im Benutzerdesktop.