Erstellen einer Anwendungsverknüpfung durch Ausführen eines Skripts mithilfe von Package Support Framework
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.
Die Idee besteht darin, die Anwendungsverknüpfung, die innerhalb des Pakets verfügbar ist, über die PSF-Skripts auf den Desktop des Benutzers zu kopieren.
Es gibt ein paar Dinge, die Sie beachten sollten:
- Erstellen Sie nur eine Verknüpfung, wenn sie unbedingt erforderlich sind. Ziel ist es, den Desktop des Benutzers nicht zu überladen.
- 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.
- Gleichzeitig kann sich der MSIX-Anwendungspfad ändern, sobald er die im Installationsordner angegebene Versionsnummer aufweist. Beispiel für den Installationspfad " Contoso Expenses ":
C:\Programme\WindowsApps\ContosoExpenses_1.0.0.0
_x86__3z09h3y28h0qg
Um zu vermeiden, dass die Anwendungsverknüpfung bei jeder Aktualisierung der Anwendung geändert werden muss, erstellen Sie die Verknüpfung, indem Sie auf " AppExecutionAlias" zeigen. Die AppExecutionAlias ermöglicht es, die Anwendung mit dem in der Aliassitzung des Anwendungsmanifests definierten Wert zu starten, sodass der vollständige Anwendungspfad nicht angegeben werden muss. Definieren Sie daher vor dem Erstellen der Verknüpfung den Alias im Anwendungsmanifest. Andernfalls erkennt Windows Explorer den Alias nicht, und es ermöglicht 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:
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"
Fügen Sie den Wert "uap3 " und "Desktop " in das Element "IgnorableNamespaces " ein:
IgnorableNamespaces="uap uap3 desktop rescap build"
Schließen Sie den Ausführungsalias der Anwendung nach dem <Element "/uap:VisualElements> " 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:
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:
Nachdem der Alias erstellt wurde, können Sie mit den nächsten Schritten fortfahren.
Erstellen der Anwendungsverknüpfung
Erstellen Sie eine neue Anwendungsverknüpfung in einem Ordner Ihrer Vorliebe mit dem Alias " contosoexpenses.exe", wie folgt:
Benennen Sie die Verknüpfung für Contoso-Ausgaben:
Standardmäßig ist die Verknüpfung ein generisches Symbol:
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 den Von der MSIX-Anwendung verwendeten %appdata% zu kopieren, d. h. den Ordner "%localappdata%\Packages\ContosoExpenses_3z09h3y28h0qg\LocalCache\Roaming_ ", der nicht über die Versionsnummer verfügt.
Um die Anwendungsverknüpfung zu ändern, ist es vorerst erforderlich, das Symbol manuell in diesen Ordner zu kopieren. Dies wird später mithilfe von PSF-Skripts automatisiert.
Jetzt ist es möglich, das Verknüpfungssymbol in den Pfad %localappdata% zu ändern:
Nutzen Sie weiterhin die Verknüpfungseigenschaften, nutzen Sie die Werte des Ziels und beginnen Sie in Eigenschaften para %localappdata%\Microsoft\WindowsApps\contosoexpenses.exe e %localappdata%\Microsoft\WindowsApps bzw.
Da die Verknüpfung nun funktioniert, besteht der nächste Schritt darin, sie dem Paket hinzuzufügen und den Erstellungsprozess zu automatisieren.
Abrufen der PSF-Dateien
Laden Sie die PSFBinaries.zip aus dem PSF Github-Repository herunter.
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 Anwendung ist x64 | Ausführbare Anwendung ist x86 |
---|---|
PSF Startprogramm 64.exe | PSF Startprogramm 32.exe |
PSFRuntime64.dll | PSFRuntime32.dll |
Einschließen der PSF-Dateien in das Paket
Bearbeiten Sie die Contoso-Spesenkosten über das MSIX-Verpackungstool :
Klicken Sie auf das Menüelement "Paketdateien ", klicken Sie mit der rechten Schaltfläche im Ordner "Paket ", und wählen Sie " Datei hinzufügen"...:
Da der ContosoExpense-Build hier 32-Bit ist, wurde es die erforderlichen PSF-32-Bit-Dateien hinzugefügt. Ihr Paketinhalt sollte nun etwa wie folgt aussehen:
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:
In diesem Schritt ist es notwendig, den Einstiegspunkt der Anwendung (ContosoExpenses\ContosoExpenses.exe) durch die PSF Startprogramm 32.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 Packaging Tool, 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:
Die Datei config.json wird verwendet, um anzugeben, dass das Skript createshortcut.ps1 nur einmal in der ersten Anwendungsinitialisierung ausgeführt werden soll. Da das Arbeitsverzeichnis auf ContosoExpenses festgelegt ist, muss das Skript createshortcut.ps1 (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 zuvor erstellte Verknüpfung "Contoso Expenses.lnk" , die im Paket verfügbar ist, auf den Benutzerdesktop. Die zweite Anweisung kopiert das "contoso.icon" in den Ordner "MSIX APPDATA" (%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 Skript createshortcut.ps1 ausgeführt und erstellt die Contoso-Kostenverknüpfung im Benutzerdesktop.