パッケージサポートフレームワークでパラメーターを使用してアプリを起動するLaunch Apps with Parameters through Package Support Framework

パッケージサポートフレームワークは、アプリケーションの動作を構成するために、構成の json ファイルを使用します。The Package Support Framework uses a config.json file to configure the behavior of an application.

プロシージャProceedure

アプリケーションの起動中に渡されるパラメーター値を受け取るようにアプリケーションの実行を構成するには、次の手順を完了する必要があります。To configure the application execution to receive parameter values passed into it during application launch, the following steps must be completed.

  1. パッケージサポートフレームワークをダウンロードするDownload the Package Support Framework
  2. パッケージサポートフレームワーク (config.xml) の構成Configure the Package Support Framework (config.json)
  3. パッケージサポートフレームワークファイルをアプリケーションパッケージに挿入します。Inject the Package Support Framework files into the Application package
  4. アプリケーションのマニフェストファイルを更新するUpdate the application's manifest file
  5. アプリケーションを再パッケージ化するRe-package the application

パッケージサポートフレームワークをダウンロードするDownload the Package Support Framework

パッケージサポートフレームワークは、スタンドアロンの Nuget コマンドラインツールまたは Visual Studio を使用して取得できます。The Package Support Framework can be retrieved by using the standalone Nuget commandline tool or via Visual Studio.

Nuget comandline ツール:Nuget comandline tool:

Nuget web サイトから Nuget コマンドラインツールをインストール https://www.nuget.org/downloads します。Install the Nuget commandline tool from the nuget website: https://www.nuget.org/downloads. をインストールした後、管理用 PowerShell ウィンドウで次のコマンドラインを実行します。After installing, run the following commandline in an administrative PowerShell window.

nuget install Microsoft.PackageSupportFramework

Visual Studio:Visual Studio:

Visual Studio で、ソリューション/プロジェクトノードを右クリックし、[Nuget パッケージの管理] コマンドのいずれかを選択します。In Visual Studio, right-click on your solution/project node and pick one of the Manage Nuget Packages commands. Nuget.org でパッケージを検索するには、「 PSF upportframework 」または「」を検索します。その後、インストールします。Search for Microsoft.PackageSupportFramework or PSF to find the package on nuget.org. Then, install it.

構成の json ファイルを作成するCreate the config.json file

アプリケーションを起動するために必要な引数を指定するには、アプリケーションの実行可能ファイルとパラメーターを指定して、構成の json ファイルを変更する必要があります。To specify the arguements required to launch the application, you must modify the config.json file specifying the application executable, and parameters. Json strucuture を構成する前に、次の表を確認してください。Prior to configuring the config.json file, review the following table to understand the JSON strucuture.

Json スキーマJson Schema

配列Array キーkey Value
applicationsapplications IDid パッケージマニフェスト内の Application 要素の ID 属性の値を使用します。Use the value of the ID attribute of the Application element in the package manifest.
applicationsapplications executableexecutable 開始する実行可能ファイルへのパッケージ相対パス。The package-relative path to the executable that you want to start. これは、Application 要素の Executable 属性の値です。It's the value of the Executable attribute of the Application element.
applicationsapplications 引数arguments Optional実行可能ファイルのコマンドラインパラメーター引数。(Optional) Command line parameter arguments for the executable.
applicationsapplications workingDirectoryworkingDirectory Optionalを開始するアプリケーションの作業ディレクトリとして使用するパッケージ相対パス。(Optional) A package-relative path to use as the working directory of the application that starts. この値を設定しない場合、オペレーティングシステムは System32 ディレクトリをアプリケーションの作業ディレクトリとして使用します。If you don't set this value, the operating system uses the System32 directory as the application's working directory. 空の文字列の形式で値を指定すると、参照される実行可能ファイルのディレクトリが使用されます。If you supply a value in the form of an empty string, it will use the directory of the referenced executable.
applicationsapplications 監視monitor Optional存在する場合、モニターは、プライマリアプリケーションを起動する前に起動されるセカンダリプログラムを識別します。(Optional) If present, the monitor identifies a secondary program that is to be launched prior to starting the primary application.
プロセスprocesses executableexecutable ほとんどの場合、この名前は、パスとファイル拡張子が削除された状態で、上記で構成した実行可能ファイルの名前になります。In most cases, this will be the name of the executable configured above with the path and file extension removed.
アップfixups dlldll フィックスアップへのパッケージ相対パス。 msix/.appx を読み込みます。Package-relative path to the fixup, .msix/.appx to load.
アップfixups configconfig OptionalFixup dll の動作を制御します。(Optional) Controls how the fixup dll will behave. この値の正確な形式は、各フィックスアップが必要に応じてこの "blob" を解釈できるため、fixup ごとに変化します。The exact format of this value varies on a fixup-by-fixup basis as each fixup can interpret this "blob" as it wants.

アプリケーション、プロセス、およびフィックスアップキーは配列です。The applications, processes, and fixups keys are arrays. つまり、config.xml ファイルを使用して、複数のアプリケーション、プロセス、および修正 DLL を指定できます。That means that you can use the config.json file to specify more than one application, process, and fixup DLL.

プロセス内のエントリには、実行可能ファイルという名前の値があります。この値は、パスまたはファイル拡張子のない実行可能プロセスの名前と一致する RegEx 文字列として指定する必要があります。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. ランチャーは、RegEx 文字列に対して std:: library RegEx ECMAList 構文を使用することを Windows SDK 想定しています。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": "",
      }
    ],
}

パッケージサポートフレームワークファイルをアプリケーションパッケージに挿入します。Inject the Package Support Framework files to the Application package

パッケージのステージングフォルダーを作成するCreate the package staging folder

既に. msix (または .appx) ファイルがある場合は、パッケージのステージング領域として機能するレイアウトフォルダーにその内容をアンパックできます。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. これは、MakeAppx ツールを使用してコマンドプロンプトから実行できます。You can do this from a command prompt using the MakeAppx tool.

MakeAppx ツールは、既定の場所にあります。MakeAppx tool can be found in its default location:

OS アーキテクチャOS Architecture ディレクトリDirectory
Windows 10 x86Windows 10 x86 C:\Program Files\Windows Kits\10\bin [ Version] \x86\makeappx.exeC:\Program Files\Windows Kits\10\bin[Version]\x86\makeappx.exe
Windows 10 x64Windows 10 x64 C:\Program Files (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

上記の PowerShell コマンドは、アプリケーションの内容をローカルディレクトリにエクスポートします。The above PowerShell command will export the contents of the application into a local directory.

必要なファイルの挿入Inject required files

必要な32ビットおよび64ビットのパッケージサポートフレームワーク DLL と実行可能ファイルをパッケージディレクトリに追加します。Add the required 32-bit and 64-bit Package Support Framework DLL(s) and executable files to the package directory. 次の表をガイドとして使用してください。Use the following table as a guide. 必要に応じて、任意のランタイム修正プログラムを含めることもできます。You will also want to include any runtime fixes as required. パッケージサポートフレームワークを使用したランタイムの修正に関するガイダンスについては、「パッケージサポートフレームワークのランタイム修正プログラム」を参照してください。Visit Package Support Framework Runtime fixes Docs article for guidance on using the Package Support Framework for runtime fixes.

アプリケーション実行可能ファイルは x64Application executable is x64 アプリケーション実行可能ファイルは x86Application executable is x86
PSFLauncher64PSFLauncher64.exe PSFLauncher32PSFLauncher32.exe
PSFRuntime64PSFRuntime64.dll PSFLauncher32PSFLauncher32.dll
PSFRunDll64PSFRunDll64.exe PSFRunDll32PSFRunDll32.exe

上記の特定のファイル、および構成のjsonファイルは、アプリケーションパッケージディレクトリのルート内に配置する必要があります。These above identified files, as well as the config.json file must be placed within the root of your application package directory.

アプリケーションのマニフェストを更新するUpdate the application's manifest

アプリケーションマニフェストをテキストエディターで開き、アプリケーション要素の Executable 属性に 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. ターゲットアプリケーションのアーキテクチャがわかっている場合は、適切なバージョンである PSFLauncher [x64/x86] .exe を選択します。If you know the architecture of your target application, select the appropriate version, PSFLauncher[x64/x86].exe. Unknown の場合、PSFLauncher32 は常に機能します。If unknown, PSFLauncher32.exe will work in all cases.

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

アプリケーションを再パッケージ化するRe-package the application

Makeappx ツールを使用して、アプリケーションを再パッケージ化します。Re-package the application using the makeappx tool. 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