Freigeben über


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.

Contoso-Ausgaben

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:

  1. Erstellen Sie nur dann eine Verknüpfung, wenn sie unbedingt erforderlich ist. Ziel ist es, 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 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 verweisen. 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:

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" 

Fügen Sie den Wert "uap3 " und "Desktop " in das Element "IgnorableNamespaces " ein:

IgnorableNamespaces="uap uap3 desktop rescap build"

Fügen Sie den Ausführungsalias der Anwendung nach dem Element </uap:VisualElements> hinzu.

  <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, können Sie mit den nächsten Schritten fortfahren.

Erstellen Sie die Anwendungsverknüpfung

Erstellen Sie eine neue Anwendungsverknüpfung in einem Ordner Ihrer Wahl, indem Sie den Alias contosoexpenses.exe wie folgt verwenden:

Neue App-Verknüpfung

Benenne den Schnellzugriff von Contoso Expenses:

Erstellung der Verknüpfung für die neue App abgeschlossen

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, da dieser sich in einem zukünftigen Update ändern kann. Eine Möglichkeit, dies zu lösen, besteht darin, das Symbol aus dem Paket in die %appdata% zu kopieren, die von der MSIX-Anwendung verwendet werden, d. h. die %localappdata%\Packages\ContosoExpenses_3z09h3y28h0qg\LocalCache\Roaming_ Ordner, der keine Versionsnummer hat.

Um die Anwendungsverknüpfung zu ändern, ist es vorübergehend 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 %localappdata% Pfad zu ändern:

Neue Pfadverknüpfung

Während Sie sich noch in den Eigenschaften der Verknüpfung befinden, ändern Sie die Werte der Eigenschaften Ziel und Starten in nach %localappdata%\Microsoft\WindowsApps\contosoexpenses.exe und %localappdata%\Microsoft\WindowsApps jeweils.

Tastenkürzel für neue Werte

Da die Verknüpfung nun funktioniert, besteht der nächste Schritt darin, sie 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-Repository herunter.

psf aus GitHub-Veröffentlichungen

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. Verwenden Sie die folgende Tabelle als Anleitung.

Die ausführbare Anwendung ist 64-Bit. 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 Expense über das MSIX Packaging Tool :

psf von github mpt bearbeiten

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

psf aus github psf dateien hinzufügen

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

psf hat Dateien von github psf hinzugefügt

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 Einstiegspunkt der Anwendung zu ändern (ContosoExpenses\ContosoExpenses.exe) by the PSFLauncher32.exe.

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

Speichern und schließen Sie die Manifestdatei.

Erstellen der config.json-Datei

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 config.json Datei 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 config.json Datei muss im Paketstamm wie folgt erstellt werden:

psf von github

Die config.json Datei wird verwendet, um anzugeben, dass das createshortcut.ps1 Skript nur einmal in der ersten Anwendungsinitialisierung ausgeführt werden soll. Wenn das Arbeitsverzeichnis auf "ContosoExpenses" festgelegt ist, müssen 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 folgendem 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 Benutzer-Desktop. 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 createshortcut.ps1 Skript ausgeführt und erstellt die Contoso Expense-Verknüpfung im Benutzer-Desktop.