Directory di lavoro corrente PSFCurrent working directory PSF

Il Framework di supporto pacchetti usa un config.jssu file per configurare il comportamento di un'applicazione.The Package Support Framework uses a config.json file to configure the behavior of an application.

ProceduraProceedure

Per configurare l'esecuzione dell'applicazione in modo da ricevere i valori dei parametri passati durante l'avvio dell'applicazione, è necessario completare i passaggi seguenti.To configure the application execution to receive parameter values passed into it during application launch, the following steps must be completed.

  1. Scaricare il Framework di supporto pacchettiDownload the Package Support Framework
  2. Configurare il Framework di supporto pacchetti (config.json)Configure the Package Support Framework (config.json)
  3. Inserire i file del Framework di supporto del pacchetto nel pacchetto dell'applicazioneInject the Package Support Framework files to the Application package
  4. Aggiornare il manifesto dell'applicazioneUpdate the application's manifest
  5. Ricreare il pacchetto dell'applicazioneRe-package the application

Scaricare il Framework di supporto pacchettiDownload the Package Support Framework

Il Framework di supporto pacchetti può essere recuperato usando lo strumento di riga di comando NuGet autonomo o tramite Visual Studio.The Package Support Framework can be retrieved by using the standalone Nuget commandline tool or via Visual Studio.

Strumento comandline NuGet:Nuget comandline tool:

Installare lo strumento NuGet CommandLine dal sito Web NuGet: https://www.nuget.org/downloads .Install the Nuget commandline tool from the nuget website: https://www.nuget.org/downloads. Dopo l'installazione, eseguire la seguente riga di comando in una finestra di PowerShell amministrativa.After installing, run the following commandline in an administrative PowerShell window.

nuget install Microsoft.PackageSupportFramework

Visual Studio:Visual Studio:

In Visual Studio fare clic con il pulsante destro del mouse sul nodo soluzione/progetto e scegliere uno dei comandi Gestisci pacchetti NuGet.In Visual Studio, right-click on your solution/project node and pick one of the Manage Nuget Packages commands. Cercare Microsoft. PackageSupportFramework o PSF per trovare il pacchetto in NuGet.org. Quindi, installarlo.Search for Microsoft.PackageSupportFramework or PSF to find the package on nuget.org. Then, install it.

Creare il config.jsnel fileCreate the config.json file

Per specificare gli argomenti necessari per avviare l'applicazione, è necessario modificare il config.jsnel file specificando l'eseguibile dell'applicazione e i parametri.To specify the arguements required to launch the applicaiton, you must modify the config.json file specifying the application executable, and parameters. Prima di configurare il config.jsnel file, vedere la tabella seguente per informazioni sul strucuture JSON.Prior to configuring the config.json file, review the following table to understand the JSON strucuture.

Schema JSONJson Schema

ArrayArray Keykey valoreValue
scala Webapplications idid Usare il valore dell'attributo ID dell'elemento Application nel manifesto del pacchetto.Use the value of the ID attribute of the Application element in the package manifest.
scala Webapplications eseguibileexecutable Percorso relativo del pacchetto all'eseguibile che si desidera avviare.The package-relative path to the executable that you want to start. Si tratta del valore dell'attributo Executable dell'elemento Application.It's the value of the Executable attribute of the Application element.
scala Webapplications argomentiarguments Opzionale Argomenti dei parametri della riga di comando per il file eseguibile.(Optional) Command line parameter arguments for the executable.
scala Webapplications workingDirectoryworkingDirectory Opzionale Percorso relativo del pacchetto da utilizzare come directory di lavoro dell'applicazione che viene avviata.(Optional) A package-relative path to use as the working directory of the application that starts. Se non si imposta questo valore, il sistema operativo usa la directory System32 come directory di lavoro dell'applicazione.If you don't set this value, the operating system uses the System32 directory as the application's working directory. Se si fornisce un valore sotto forma di stringa vuota, verrà usata la directory del file eseguibile a cui si fa riferimento.If you supply a value in the form of an empty string, it will use the directory of the referenced executable.
scala Webapplications monitoraggiomonitor Opzionale Se presente, il monitoraggio identifica un programma secondario da avviare prima di avviare l'applicazione principale.(Optional) If present, the monitor identifies a secondary program that is to be launched prior to starting the primary application.
processiprocesses eseguibileexecutable Nella maggior parte dei casi, questo sarà il nome del file eseguibile configurato in precedenza con il percorso e l'estensione del file rimossi.In most cases, this will be the name of the executable configured above with the path and file extension removed.
correzionifixups Libreria dlldll Opzionale Percorso relativo del pacchetto per la correzione,. msix/. appx da caricare.(Optional) Package-relative path to the fixup, .msix/.appx to load.
correzionifixups configconfig Opzionale Controlla il comportamento del DL di correzione.(Optional) Controls how the fixup dl behaves. Il formato esatto di questo valore varia in base a una correzione per correzione, perché ogni correzione può interpretare questo "blob" come desiderato.The exact format of this value varies on a fixup-by-fixup basis as each fixup can interpret this "blob" as it wants.

Le applicazioni, i processi e le chiavi correzioni sono matrici.The applications, processes, and fixups keys are arrays. Ciò significa che è possibile utilizzare il config.jssu file per specificare più di un'applicazione, un processo e una DLL di correzione.That means that you can use the config.json file to specify more than one application, process, and fixup DLL.

Una voce nei processi ha un valore denominato Executable, il cui valore deve essere formato come stringa RegEx in modo che corrisponda al nome di un processo eseguibile senza percorso o estensione di file.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. L'utilità di avvio prevede Windows SDK sintassi std:: Library RegEx ECMA per la stringa RegEx.The launcher will expect Windows SDK std:: library RegEx ECMAList syntax for the RegEx string.

{
    "applications": [
        {
            "id": "PSFSample",
            "executable": "PSFSampleApp/PrimaryApp.exe",
            "workingDirectory": "PSFSampleApp/"
        }
    ],
    "processes": [
        {
            "executable": "PSFSample"
        }
    ]
}

Nell'esempio precedente config.jssu file, il PrimaryApp.exe avrà la directory di lavoro reindirizzata alla directory PSFSampleAppIn the above example config.json file, the PrimaryApp.exe will have the working directory re-directed to the PSFSampleApp Directory.

Inserire i file del Framework di supporto del pacchetto nel pacchetto dell'applicazioneInject the Package Support Framework files to the Application package

Creare la cartella di gestione temporanea del pacchettoCreate the package staging folder

Se si dispone già di un file con estensione msix (o appx), è possibile decomprimere il contenuto in una cartella di layout che fungerà da area di gestione temporanea per il pacchetto.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. È possibile eseguire questa operazione da un prompt dei comandi usando lo strumento MakeAppx.You can do this from a command prompt using the MakeAppx tool.

Lo strumento MakeAppx si trova nel percorso predefinito:MakeAppx tool can be found in its default location:

Architettura del sistema operativoOS Architecture DirectoryDirectory
Windows 10 x86Windows 10 x86 C:\Programmi\Microsoft Kits\10\bin [ version] \x86\makeappx.exeC:\Program Files\Windows Kits\10\bin[version]\x86\makeappx.exe
Windows 10 x64Windows 10 x64 C:\Programmi (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

Il comando PowerShell precedente esporterà il contenuto dell'applicazione in una directory locale.The above PowerShell command will export the contents of the application into a local directory.

Inserire i file necessariInject required files

Aggiungere i file eseguibili e le DLL del Framework di supporto per i pacchetti a 32 bit e 64 bit necessari alla directory del pacchetto.Add the required 32-bit and 64-bit Package Support Framework DLL(s) and executable files to the package directory. Usare la tabella seguente come guida per includere anche eventuali correzioni di runtime, come richiesto.Use the following table as a guide, you'll also want to include any runtime fixes as required. Per informazioni sull'uso del Framework di supporto dei pacchetti per le correzioni di runtime, vedere l'articolo relativo alle correzioni di runtime del Framework di supporto pacchetti .Visit Package Support Framework Runtime fixes Docs article for guidance on using the Package Support Framework for runtime fixes.

L'eseguibile dell'applicazione è x64Application executable is x64 L'eseguibile dell'applicazione è x86Application executable is x86
PSFLauncher64.exePSFLauncher64.exe PSFLauncher32.exePSFLauncher32.exe
PSFRuntime64.dllPSFRuntime64.dll PSFLauncher32.dllPSFLauncher32.dll
PSFRunDll64.exePSFRunDll64.exe PSFRunDll32.exePSFRunDll32.exe

Questi file identificati in precedenza, così come il config.jssu file, devono essere inseriti nella radice della directory del pacchetto dell'applicazione.These above identified files, as well as the config.json file must be placed within the root of your application package directory. Questi file si trovano nella directory del Framework di supporto del pacchetto installato all'interno della directory bin .These files can be found within the installed Package Support Framework directory inside of the bin directory.

Aggiornare il manifesto dell'applicazioneUpdate the application's manifest

Aprire il manifesto delle applicazioni in un editor di testo, quindi impostare l'attributo Executable dell'elemento Application sul nome del file eseguibile PSFLauncher.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. Se si conosce l'architettura dell'applicazione di destinazione, selezionare la versione appropriata, PSFLauncher [x64/x86]. exe.If you know the architecture of your target application, select the appropriate version, PSFLauncher[x64/x86].exe. Se sconosciuta, PSFLauncher32.exe funzionerà in tutti i casi.If unknown, PSFLauncher32.exe will work in all cases.

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

Ricreare il pacchetto dell'applicazioneRe-package the application

Ricreare il pacchetto dell'applicazione usando lo strumento MakeAppx.Re-package the application using the makeappx tool. Vedere l'esempio seguente su come creare un pacchetto e firmare l'applicazione usando PowerShell: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