CustomInstallActions
CustomInstallActions 요소는 실행될 사용자 지정 설치 액션과 실행 시점에 대한 모든 정의를 포함합니다. MicrosoftGame.config 파일에서 이 요소의 인스턴스는 하나만 선언할 수 있습니다. 필수 자식 요소로 Folder가 있는데, 이는 모든 사용자 지정 액션에 필요한 모든 파일을 포함하는 폴더를 지정하는 문자열입니다. 이 폴더는 하위 폴더를 포함할 수 있습니다. 패키지에 모든 사용자 지정 액션 실행 파일의 종속성이 포함되어 있고, 각각에 대한 적절한 로드 경로에 있는지 확인하는 것은 여러분의 책임입니다.타이틀을 패키징할 때
makepkg는 이 CustomInstallActions 요소를 생성된 appxmanifest.xml의 MSIX windows.customInstall 확장으로 변환합니다. 그곳에서 동등한 요소는 <CustomInstall>이며, Folder는 특성(attribute) 으로 표현됩니다. 이 <CustomInstall> 형식을 직접 작성하지는 않습니다. MicrosoftGame.config에서 Folder는 이 문서 뒷부분의 게임 config 파일 변경 사항 예제에서 볼 수 있는 것처럼 CustomInstallActions의 자식 요소(element) 입니다.지정된 Folder에는 주요 게임 실행 파일이나 기타 파일을 넣어서는 안 됩니다. 이 폴더는 오직 사용자 지정 설치 파일 전용입니다.
액션 유형
사용자 지정 설치 확장의 세 자식 노드는 특정 사용자 지정 액션이 언제 실행되는지를 결정합니다. 사용자 지정 설치 액션에는 세 가지 유형이 있습니다.- 설치 액션(Install action): 앱이 처음 시작되기 전에 플랫폼이 실행하는 액션
- 복구 액션(Repair action): 사용자가 복구 또는 재설정을 선택할 때 실행되는 액션
- 제거 액션(Uninstall action): 사용자가 앱을 제거할 때 실행되는 액션
이름과 달리 설치 액션은 패키지가 설치될 때 실행되지 않습니다. 각 액션 유형은 앱 수명 주기의 특정 시점에 실행되며, InstallAction은 타이틀이 처음 실행되기 직전에 한 번 실행됩니다(이는 플랫폼이 필수 UAC 프롬프트를 표시할 수 있는 첫 시점입니다). “Install”, “Repair”, “Uninstall”은 액션이 실행되는 순간이 아니라, 액션이 속한 수명 주기 범주를 이름 짓는 것입니다. 실제 패키지 설치/다운로드 시점에 작업을 수행해야 한다면 사용자 지정 설치 액션은 그 메커니즘이 아닙니다. 전체 시퀀스는 사용자 지정 액션 사용법을 참조하세요.
Uninstall 액션은 Install 또는 Repair 액션이 실행된 경우에만 실행됩니다. 시스템은 이 상태를 추적하기 위해 Name 속성을 사용합니다. 이 때문에 Install/Repair/Uninstall 액션은 동일한 Name을 갖는 것이 중요합니다.
액션의 구성 요소
File
각 액션에 대해 실행할 파일을 지정해야 하며, 이 파일은 패키지에 있어야 합니다. 경로를 지정하면 암시적으로 CustomInstallActions의 Folder 경로에 대한 상대 경로가 됩니다. 절대 경로는 지정할 수 없습니다. 경로는 백슬래시(\)로 시작해서는 안 됩니다.Name
액션에 대한 Name을 지정해야 합니다. 이 Name은 부모 Actions 노드 내에서 고유해야 하지만, 서로 다른 Actions 노드 간에는 공유될 수 있습니다. 예를 들어 File=“MySetup.exe” 및 Name=“abc123”을 InstallAction과 RepairAction 양쪽에 지정할 수 있습니다. 반면 두 개의 InstallAction 요소가 있는 경우 각각 다른 Name을 가져야 합니다. 해당 실행 파일이 변경되지 않는 한 패키지 버전 전반에 걸쳐 동일한 실행 파일에 대해서는 동일한 Name을 사용해야 합니다. Name은 액션의 정체성으로 사용되며, 플랫폼이 성공적으로 실행된 액션과 업데이트된 패키지에 대해 실행해야 하는 액션을 추적할 수 있게 해줍니다. 업데이트된 패키지가 이미 성공적으로 실행된 Name을 가진 사용자 지정 액션을 지정하면, 플랫폼은 업데이트 시 이 액션을 건너뜁니다.인수 목록의 차이는 정체성의 차이를 구성하지 않습니다. 업데이트된 패키지에서 동일한 실행 파일을 다른 인수로 실행하려면 다른 Name을 제공해야 합니다. 선언된 Name을 적절하게 구성하고 버전 전반에 걸쳐 추적하는 것은 여러분의 책임입니다.
Arguments
각 사용자 지정 설치 액션에는 세 번째 요소인 arguments가 있어, 재배포 가능 명령을 실행하는 데 필요한 모든 인수를 포함할 수 있습니다.사용자 지정 액션 사용법
부정 방지 소프트웨어를 설치하려면 일반적으로 사용자에게 관리자 권한이 필요하며, 일반적으로 사용자 지정 액션은 매우 강력한 기능이기 때문에 플랫폼은 사용자 지정 액션이 있는 모든 패키지에 대해 관리자 권한을 요구합니다. 관리자 권한으로 실행되는 작업의 경우, Windows는 앱을 처음 실행할 때 사용자 계정 컨트롤(UAC) 프롬프트를 표시해야 합니다. 사용자 워크플로는 다음과 같습니다.- 게임의 Microsoft Store 페이지에는 설치에 상승된 권한이 필요한지, 설치가 사용자 지정 액션을 실행하는지, 이것이 사용자에게 어떤 의미가 있는지를 포함한 요구 사항 설명이 표시됩니다. 이 정보는 사용자가 게임 구매에 대해 정보에 근거한 결정을 내릴 수 있도록 제공됩니다.
- 사용자가 제약 조건과 그 의미에 만족하면 설치를 선택합니다.
- 플랫폼은 패키지에 사용자 지정 액션이 포함되어 있음을 감지하고, 사용자 지정 액션을 실행해야 한다는 사실을 기록합니다. 그러나 초기 설치 단계에서는 사용자 지정 액션을 실행하지 않습니다. 대신 사용자 지정 액션은 사용자가 처음 게임을 실행할 때 실행됩니다.
- 게임을 처음 실행할 때, 플랫폼이 사용자 지정 액션을 실행하려고 하는 시점에 UAC 프롬프트가 표시됩니다. 그런 다음 사용자는 관리자 자격 증명을 제공하고 상승을 수락해야 합니다. 패키지에 여러 사용자 지정 액션이 포함되어 있더라도 사용자에게는 UAC 프롬프트가 한 번만 표시됩니다. 사용자 지정 액션 중 하나 이상이 변경되지 않는 한 업데이트에 대한 추가 UAC 프롬프트는 없습니다. 게임을 제거할 때 UAC 프롬프트가 있습니다.
사용자 지정 설치 액션은 기본 MSIXVC 패키지 내에서만 지원됩니다. 프레임워크 패키지, 선택적 패키지, 수정 패키지 또는 기타 유형의 패키지에서는 지원되지 않습니다.
사용자 지정 설치, 복구, 제거 액션은 소매(retail) Microsoft Store 배포 파이프라인에서 실행됩니다. 개발 목적으로 패키지를 로컬로 설치할 때(예:
wdApp install을 사용하여 느슨한 .msixvc를 설치하거나 Add-AppxPackage를 사용하여 패키지를 등록할 때)에는 실행되지 않습니다. 로컬 개발 설치를 사용하면 여전히 패키지가 액션을 올바르게 선언하는지 확인할 수 있지만(생성된 appxmanifest.xml에서 windows.customInstall 확장으로 표시됨), 해당 경로에서는 사용자 지정 액션 실행 파일 자체는 호출되지 않습니다. 액션이 처음부터 끝까지 실행되는 것을 검증하려면 Store 또는 샌드박스 흐름을 통해 타이틀을 설치하세요.