Starten von apps mit Parametern über das Paket Unterstützungs FrameworkLaunch Apps with Parameters through Package Support Framework

Das Paket Unterstützungs Framework verwendet einen config.json-Datei, um das Verhalten einer Anwendung zu konfigurieren.The Package Support Framework uses a config.json file to configure the behavior of an application.

AusführungsdauerProceedure

Die folgenden Schritte müssen ausgeführt werden, um die Anwendungs Ausführung so zu konfigurieren, dass Sie Parameterwerte empfängt, die während des Anwendungs Starts an Sie übergeben werden.To configure the application execution to receive parameter values passed into it during application launch, the following steps must be completed.

  1. Herunterladen des Paket Unterstützungs FrameworksDownload the Package Support Framework
  2. Konfigurieren des Paket Unterstützungs Frameworks (config.jsauf)Configure the Package Support Framework (config.json)
  3. Fügen Sie die Paket Unterstützungs Framework-Dateien in das Anwendungspaket ein.Inject the Package Support Framework files into the Application package
  4. Aktualisieren der Manifest-Datei der AnwendungUpdate the application's manifest file
  5. Erneutes Verpacken der AnwendungRe-package the application

Herunterladen des Paket Unterstützungs FrameworksDownload the Package Support Framework

Das Paket Unterstützungs Framework kann mithilfe des eigenständigen nuget-Befehlszeilen Tools oder über Visual Studio abgerufen werden.The Package Support Framework can be retrieved by using the standalone Nuget commandline tool or via Visual Studio.

Nuget comandline-Tool:Nuget comandline tool:

Installieren Sie das Nuget-Befehlszeilen Tool über die Nuget-Website: https://www.nuget.org/downloads .Install the Nuget commandline tool from the nuget website: https://www.nuget.org/downloads. Führen Sie nach der Installation von die folgende Befehlszeile in einem administrativen PowerShell-Fenster aus.After installing, run the following commandline in an administrative PowerShell window.

nuget install Microsoft.PackageSupportFramework

Visual Studio:Visual Studio:

Klicken Sie in Visual Studio mit der rechten Maustaste auf den Projektmappen-/projektknotenknoten, und wählen Sie einen der Befehle nuget-Pakete verwalten aus.In Visual Studio, right-click on your solution/project node and pick one of the Manage Nuget Packages commands. Suchen Sie nach Microsoft. packagesupportframework oder PSF , um das Paket auf nuget.org zu finden. Installieren Sie es dann.Search for Microsoft.PackageSupportFramework or PSF to find the package on nuget.org. Then, install it.

config.jsfür Datei erstellenCreate the config.json file

Um die Argumente anzugeben, die zum Starten der Anwendung erforderlich sind, müssen Sie den config.jsin der Datei ändern, um die ausführbare Datei der Anwendung und die Parameter anzugeben.To specify the arguements required to launch the application, you must modify the config.json file specifying the application executable, and parameters. Lesen Sie vor dem Konfigurieren des config.jsin der Datei die folgende Tabelle, um die JSON-Strukturen zu verstehen.Prior to configuring the config.json file, review the following table to understand the JSON strucuture.

JSON-SchemaJson Schema

ArrayArray Schlüsselkey WertValue
applicationsapplications idid Verwenden Sie den Wert des ID-Attributs des Application-Elements im Paket Manifest.Use the value of the ID attribute of the Application element in the package manifest.
applicationsapplications executableexecutable Der Paket relative Pfad zur ausführbaren Datei, die Sie starten möchten.The package-relative path to the executable that you want to start. Dabei handelt es sich um den Wert des ausführbaren Attributs des Application-Elements.It's the value of the Executable attribute of the Application element.
applicationsapplications Argumentearguments Optionale Befehlszeilenparameter Argumente für die ausführbare Datei.(Optional) Command line parameter arguments for the executable.
applicationsapplications workingDirectoryworkingDirectory Optionale Ein Paket relativer Pfad, der als Arbeitsverzeichnis der Anwendung verwendet werden soll, die gestartet wird.(Optional) A package-relative path to use as the working directory of the application that starts. Wenn Sie diesen Wert nicht festlegen, verwendet das Betriebssystem das Verzeichnis System32 als Arbeitsverzeichnis der Anwendung.If you don't set this value, the operating system uses the System32 directory as the application's working directory. Wenn Sie einen Wert in Form einer leeren Zeichenfolge angeben, wird das Verzeichnis der ausführbaren Datei verwendet, auf die verwiesen wird.If you supply a value in the form of an empty string, it will use the directory of the referenced executable.
applicationsapplications Überwachenmonitor Optionale Falls vorhanden, identifiziert der Monitor ein sekundäres Programm, das vor dem Starten der primären Anwendung gestartet werden soll.(Optional) If present, the monitor identifies a secondary program that is to be launched prior to starting the primary application.
Prozesseprocesses executableexecutable In den meisten Fällen ist dies der Name der oben konfigurierten ausführbaren Datei mit dem entfernten Pfad und der Dateierweiterung.In most cases, this will be the name of the executable configured above with the path and file extension removed.
Fixupsfixups DLL-Dateidll Paket relativer Pfad zum Fixup,. msix/. AppX, das geladen werden soll.Package-relative path to the fixup, .msix/.appx to load.
Fixupsfixups configconfig Optionale Steuert, wie sich die Fixup-dll verhält.(Optional) Controls how the fixup dll will behave. Das genaue Format dieses Werts variiert je nach Fixup, da jedes Fixup dieses "BLOB" wie erwartet interpretieren kann.The exact format of this value varies on a fixup-by-fixup basis as each fixup can interpret this "blob" as it wants.

Die Schlüssel für Anwendungen, Prozesse und Fixups sind Arrays.The applications, processes, and fixups keys are arrays. Dies bedeutet, dass Sie die config.json-Datei verwenden können, um mehr als eine Anwendung, einen Prozess und eine Fixup-DLL anzugeben.That means that you can use the config.json file to specify more than one application, process, and fixup DLL.

Ein Eintrag in Prozessen hat einen Wert mit dem Namen "ausführbare Datei", dessen Wert als Regex-Zeichenfolge gebildet werden muss, um den Namen eines ausführbaren Prozesses ohne Pfad oder Dateierweiterung abzugleichen.An entry in processes has a value named executable, the value for which should be formed as a RegEx string to match the name of an executable process without path or file extension. Das Start Programm erwartet Windows SDK Std:: Library Regex ecmalist-Syntax für die Regex-Zeichenfolge.The launcher will expect Windows SDK std:: library RegEx ECMAList syntax for the RegEx string.

{
    "applications": [
      {
        "id": "PSFExampleID",
        "executable": "VFS\\ThisPCDesktopFolder\\IG-Bentley.exe",
        "workingDirectory": "",
      }
    ],
}

Fügen Sie die Paket Unterstützungs Framework-Dateien in das Anwendungspaket ein.Inject the Package Support Framework files to the Application package

Erstellen des paketstagingordnersCreate the package staging folder

Wenn Sie bereits über eine msix-Datei (oder eine AppX-Datei) verfügen, können Sie den Inhalt in einen layoutordner entpacken, der als Stagingbereich für das Paket fungiert.If you have a .msix (or .appx) file already, you can unpack its contents into a layout folder that will serve as the staging area for your package. Dies können Sie über eine Eingabeaufforderung mit dem makeappx-Tool ausführen.You can do this from a command prompt using the MakeAppx tool.

Das makeappx-Tool befindet sich am Standard Speicherort:MakeAppx tool can be found in its default location:

BetriebssystemarchitekturOS Architecture VerzeichnisDirectory
Windows 10 x86Windows 10 x86 C:\Programme\Windows kits\10\bin [ Version] \x86\makeappx.exeC:\Program Files\Windows Kits\10\bin[Version]\x86\makeappx.exe
Windows 10 x64Windows 10 x64 C:\Programme (x86) \Windows kits\10\bin [ Version] \x64\makeappx.exeC:\Program Files (x86)\Windows Kits\10\bin[Version]\x64\makeappx.exe
makeappx unpack /p PrimaryApp.msix /d PackageContents

Mit dem obigen PowerShell-Befehl wird der Inhalt der Anwendung in ein lokales Verzeichnis exportiert.The above PowerShell command will export the contents of the application into a local directory.

Erforderliche Dateien einfügenInject required files

Fügen Sie die erforderlichen 32-Bit-und 64-Bit-paketunterstützungs-Framework-dll (s) und ausführbare Dateien zum Paket Verzeichnis hinzu.Add the required 32-bit and 64-bit Package Support Framework DLL(s) and executable files to the package directory. Orientieren Sie sich an der folgenden Tabelle.Use the following table as a guide. Sie sollten auch beliebige Lauf Zeit Korrekturen nach Bedarf einschließen.You will also want to include any runtime fixes as required. Eine Anleitung zur Verwendung des Paket Unterstützungs Frameworks für Lauf Zeit Korrekturen finden Sie im Artikel zur Paket Support Framework-Lauf Zeit Korrekturen .Visit Package Support Framework Runtime fixes Docs article for guidance on using the Package Support Framework for runtime fixes.

Ausführbare Datei der Anwendung ist x64Application executable is x64 Ausführbare Datei der Anwendung ist x86Application executable is x86
PSFLauncher64.exePSFLauncher64.exe PSFLauncher32.exePSFLauncher32.exe
PSFRuntime64.dllPSFRuntime64.dll PSFLauncher32.dllPSFLauncher32.dll
PSFRunDll64.exePSFRunDll64.exe PSFRunDll32.exePSFRunDll32.exe

Diese obigen identifizierten Dateien sowie die config.jsin der Datei müssen im Stammverzeichnis des Anwendungspaket Verzeichnisses abgelegt werden.These above identified files, as well as the config.json file must be placed within the root of your application package directory.

Aktualisieren des Anwendungs ManifestsUpdate the application's manifest

Öffnen Sie das Anwendungs Manifest in einem Text-Editor, und legen Sie dann das ausführbare Attribut des Application-Elements auf den Namen der ausführbaren Datei psflauncher fest.Open the applications manifest in a text editor, then set the Executable attribute of the application element to the name of the PSFLauncher executable file. Wenn Sie die Architektur der Zielanwendung kennen, wählen Sie die entsprechende Version, psflauncher [x64/x86]. exe aus.If you know the architecture of your target application, select the appropriate version, PSFLauncher[x64/x86].exe. Wenn unbekannt, werden PSFLauncher32.exe in allen Fällen funktionieren.If unknown, PSFLauncher32.exe will work in all cases.

<Package ...>
  ...
  <Applications>
    <Application Id="PSFSample"
                 Executable="PSFLauncher32.exe"
                 EntryPoint="Windows.FullTrustApplication">
      ...
    </Application>
  </Applications>
</Package>

Erneutes Verpacken der AnwendungRe-package the application

Packen Sie die Anwendung mit dem makeappx-Tool erneut.Re-package the application using the makeappx tool. Im folgenden Beispiel wird gezeigt, wie Sie die Anwendung mithilfe von PowerShell Verpacken und signieren:See the following example of how to package and sign the application using PowerShell:

makeappx pack /d PackageContents /p PSFSamplePackageFixup.msix
signtool sign /a/v/fd sha256 /f ExportedSigningCertificate.pfx PSFSamplePackageFixup.msix