패키지 지원 프레임 워크를 통해 매개 변수를 사용 하 여 앱 시작Launch Apps with Parameters through Package Support Framework

패키지 지원 프레임 워크는 파일에 config.js를 사용 하 여 응용 프로그램의 동작을 구성 합니다.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.js)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 웹 사이트에서 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. PackageSupportFramework 또는 PSF 를 검색 하 여 nuget.org에서 패키지를 찾습니다. 그런 다음 설치 합니다.Search for Microsoft.PackageSupportFramework or PSF to find the package on nuget.org. Then, install it.

파일에 config.js를 만듭니다.Create the config.json file

응용 프로그램을 시작 하는 데 필요한 인수를 지정 하려면 응용 프로그램 실행 파일 및 매개 변수를 지정 하는 파일에서 config.js를 수정 해야 합니다.To specify the arguements required to launch the application, you must modify the config.json file specifying the application executable, and parameters. 파일에 config.js를 구성 하기 전에 다음 표를 검토 하 여 JSON strucuture을 이해 합니다.Prior to configuring the config.json file, review the following table to understand the JSON strucuture.

Json 스키마Json Schema

ArrayArray keykey Value
애플리케이션applications idid 패키지 매니페스트에 있는 응용 프로그램 요소의 ID 특성 값을 사용 합니다.Use the value of the ID attribute of the Application element in the package manifest.
애플리케이션applications executableexecutable 시작 하려는 실행 파일의 패키지 상대 경로입니다.The package-relative path to the executable that you want to start. 응용 프로그램 요소의 실행 가능한 특성 값입니다.It's the value of the Executable attribute of the Application element.
애플리케이션applications 인수arguments 필드 실행 파일에 대 한 명령줄 매개 변수 인수입니다.(Optional) Command line parameter arguments for the executable.
애플리케이션applications workingDirectoryworkingDirectory 필드 를 시작 하는 응용 프로그램의 작업 디렉터리로 사용할 패키지 상대 경로입니다.(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.
애플리케이션applications 모니터monitor 필드 모니터가 있는 경우 기본 응용 프로그램을 시작 하기 전에 실행할 보조 프로그램을 식별 합니다.(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 로드할 픽스업에 대 한 패키지 상대 경로입니다.Package-relative path to the fixup, .msix/.appx to load.
픽스업fixups configconfig 필드 픽스업 dll이 동작 하는 방식을 제어 합니다.(Optional) Controls how the fixup dll will behave. 이 값의 정확한 형식은 각 픽스업이 원하는 대로이 "blob"를 해석할 수 있기 때문에 픽스업 별로 다릅니다.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.js를 사용 하 여 둘 이상의 응용 프로그램, 프로세스 및 픽스업 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

파일이 이미 있는 경우 패키지의 준비 영역으로 사용 되는 레이아웃 폴더에 해당 콘텐츠의 압축을 풀 수 있습니다.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 arch> [ 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 arch> [ 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 응용 프로그램 실행 파일이 x86입니다.Application executable is x86
PSFLauncher64.exePSFLauncher64.exe PSFLauncher32.exePSFLauncher32.exe
PSFRuntime64.dllPSFRuntime64.dll PSFLauncher32.dllPSFLauncher32.dll
PSFRunDll64.exePSFRunDll64.exe PSFRunDll32.exePSFRunDll32.exe

위의 식별 된 파일 및 파일 ** 의config.js** 는 응용 프로그램 패키지 디렉터리의 루트 내에 배치 해야 합니다.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

텍스트 편집기에서 응용 프로그램 매니페스트를 열고 application 요소의 실행 가능한 특성을 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. 알 수 없는 경우에는 PSFLauncher32.exe 모든 경우에 작동 합니다.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.exe 도구를 사용 하 여 응용 프로그램을 다시 패키지 합니다.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