MicrosoftGame.config 추가 참조
요약
이 문서에서는 MicrosoftGame.config 파일에 대한 추가 세부 정보/참조 자료를 설명합니다. 다음 섹션이 포함되어 있습니다.| 섹션 | 설명 |
|---|---|
| 요소 세부 정보 | MicrosoftGame.config 요소 이름, 용도 및 참고 사항 목록을 제공합니다. |
| 샘플 MicrosoftGame.config 파일 | XBOX 및 PC용 MicrosoftGame.config 예제를 제공합니다. |
| MicrosoftGame.config용 XSD 스키마 | MicrosoftGame.config를 검증하는 데 사용되는 XSD 스키마에 대한 세부 정보를 제공합니다. |
| 이전 요소 참조 | ERA로부터의 변경 사항에 대한 참조를 포함하여 변경된 주요 요소 목록을 제공합니다. |
| MicrosoftGame.config 및 DLC 생성 | DLC 제품을 위한 MicrosoftGame.config 생성에 대한 추가 정보를 제공합니다. |
| 함께 보기 | MicrosoftGame.config와 관련된 추가 문서에 대한 링크를 제공합니다. |
Game configVersion 세부 정보
2022년 3월 Microsoft Game Development Kit (GDK)부터, Microsoft Game Development Kit (GDK) 도구를 사용하여 생성된 새 MicrosoftGame.config 파일의 Game configVersion이 0에서 1로 업데이트되었습니다. 2023년 10월 GDK부터는 모든 타이틀이 configVersion=“1”을 사용해야 합니다. Submission Validator는 2023년 10월 GDK를 사용하여 configVersion=“0”으로 제출하는 모든 타이틀에 대해 실패(FAILURE)를 보고합니다. Game configVersion 0과 1 사이의 변경 사항은 다음과 같습니다.- MSAAppId와 TitleId 요소 중 하나라도 MicrosoftGame.config에 지정된 경우 둘 다 필수입니다(즉, TitleId가 지정된 경우 MSAAppId도 지정되어야 합니다).
- NoCodePCRoot 요소가 지정되거나 AdvancedUserModel 요소가 false 값으로 설정된 경우 MSAAppId와 TitleId 요소가 필수입니다.
- ModFolder, EnableWritesToPackageRoot, DisableFilesystemWriteVirtualization 및 DisableRegistryWriteVirtualization 요소는 configVersion 1에서 이제 더 이상 사용되지 않습니다.
<Game configVersion="1">
요소 세부 정보
이 섹션에서는 MicrosoftGame.config 내에서 정의 가능한 요소의 이름, 필수 여부, 용도, 부모 노드 및 추가 참고 사항을 자세히 설명합니다.| 노드 이름 | 필수 | 용도 | 부모 | 참고 |
|---|---|---|---|---|
| Game | 필수 | 다른 모든 콘텐츠를 포함하는 단일 부모 노드 | ||
| Identity | 필수 | 타이틀의 Name, Publisher 및 Version을 정의합니다. | Game | 타이틀 정보는 Partner Center의 Product Management -> Product Identity에서 찾을 수 있습니다. Partner Center에서 게임 설정하기, Managed Partners용을 참조하세요. 등록 중에 타이틀을 고유하게 식별하는 데 사용됩니다. Name과 Publisher는 필수 필드입니다. Version은 지정되지 않은 경우 기본값이 1.0.0.0입니다. 후속 콘솔 세대에 대한 추가 패키지는 기존 패키지 버전 이상으로 패키지의 메이저 버전을 증가시켜야 합니다. |
| ShellVisuals | 패키지 빌드에 필수 | 타이틀의 셸 존재를 정의합니다. 예를 들어 이미지와 이름입니다. | Game | 등록 중에 타이틀을 셸에 표시하는 데 사용됩니다. |
| Resources | 선택 | Shell Visuals 지역화에 사용되는 Language Locale 쌍 목록입니다. | Game | 형식이 유지되므로 기존 AppxManifest에서 복사하여 붙여넣을 수 있습니다. 자세한 내용은 패키징을 참조하세요. |
| Resource | 선택 | Resources 목록 내의 Language Locale의 개별 항목입니다. | Resources | |
| ExecutableList | 필수 | 타이틀 실행 파일 목록입니다. | Game | 타이틀을 성공적으로 등록하거나 패키징하려면 최소 하나의 항목이 필요합니다. “IsDevOnly” 특성을 사용하면 이 항목이 제출용 서명된 패키지에 포함되지 않도록 할 수 있습니다. Display Name 및 Logo에 대한 재정의를 통해 셸에서 이 실행 파일에 대한 고유한 값을 지정할 수 있습니다(위의 “ShellVisuals” 노드에 지정된 리소스는 여기서 재정의되지 않는 한 각 실행 파일의 기본값이 됩니다). |
| Executable | 필수 | 특정 실행 파일의 세부 정보를 지정합니다. | ExecutableList | 이 섹션의 특성에는 실행 파일 이름(Name), 대상 디바이스(TargetDeviceFamily), Application ID(Id), 개발 전용 실행 파일 여부(IsDevOnly), ShellVisuals 노드의 표시 이름을 재정의할지 여부(OverrideDisplayName), ShellVisuals 노드의 Logo를 재정의할지 여부(OverrideLogo), ShellVisuals 노드의 Square480x480Logo를 재정의할지 여부(OverrideSquare480x480Logo), ShellVisuals 노드의 Square44x44Logo를 재정의할지 여부(OverrideSquare44x44Logo), ShellVisuals 노드의 SplashScreenImage를 재정의할지 여부(OverrideSplashScreenImage), 그리고 실행 파일에 별칭이 있는지 여부(Alias, 현재 Desktop만 해당)가 포함됩니다. |
| AdvancedUserModel | 선택 | 타이틀에 Advanced User Model을 사용할지 여부를 지정합니다. | Game | 이는 타이틀이 재시작 없이도 활성 사용자 변경을 지원함을 의미합니다. 비활성화되면 simple user model이 사용되어 타이틀이 항상 시작된 활성 사용자를 유지하도록 보장합니다. 자세한 내용은 GDK 사용자 모델(NDA 문서)을 참조하세요. |
| Protocol | 선택 | 게임을 시작하거나, 이미 실행 중인 경우 게임을 포그라운드로 가져올 때 사용할 수 있는 커스텀 프로토콜입니다. | ProtocolList | 커스텀 프로토콜의 이름과 함께 선택적으로 실행 파일의 경로를 지정합니다. 자세한 내용은 Protocol Activation을 참조하세요. |
| ProtocolList | 선택 | 게임을 시작하거나, 이미 실행 중인 경우 게임을 포그라운드로 가져올 때 사용할 수 있는 커스텀 프로토콜의 컬렉션을 지정합니다. | Game | 최소 하나의 Protocol을 제공해야 합니다. 자세한 내용은 Protocol Activation을 참조하세요. |
| GameOsVersion | 선택 (콘솔 전용) | 이 타이틀이 실행되는 데 필요한 Microsoft Game Development Kit (GDK) Game OS 버전을 지정합니다. | Game | 지정되지 않은 경우 현재 실행 중이거나 기본 Game OS를 사용합니다. |
| WindowsOsVersion | 선택 (PC 전용) | 이 타이틀이 실행되는 데 필요한 최소 및 권장 Windows 버전을 지정합니다. | DesktopRegistration | 허용되는 값은 4자리 버전 번호(예: 10.0.19045.3570)이며 옵션은 RequiredMinimum=”#.#.#.#”, SuggestedMinimum=”#.#.#.#”, Recommended=”#.#.#.#“입니다. 이 SuggestedMinimum 요소는 기본값이 10.0.19045.3570입니다. |
| MediaCapture | 선택 (콘솔 전용) | 이 타이틀이 실행되는 동안 시스템 Media Capture 앱에 대한 원하는 동작을 지정합니다. | Game | 미디어 캡처가 올바르게 작동하려면 타이틀 ID가 구성되어야 합니다. |
| GameDVRSystemComponent | 선택 (콘솔 전용) | Game DVR 시스템 컴포넌트의 활성화 여부를 지정합니다. | MediaCapture | |
| BlockBroadcast | 선택 (콘솔 전용) | 타이틀 방송을 차단할지 허용할지를 지정합니다. | MediaCapture | |
| BlockGameDVR | 선택 (콘솔 전용) | 타이틀의 Game DVR 녹화를 차단할지 허용할지를 지정합니다. | MediaCapture | |
| StoreId | 선택 | 이 타이틀의 스토어 ID를 지정합니다. | Game | Partner Center의 Product Management -> Product Identity에서 지정됩니다. |
| AllowedProducts | 선택 | 이 DLC(Downloadable Content Package) 타이틀이 속한 연관된 타이틀의 StoreId를 지정합니다. | Game | 자세한 내용은 Downloadable Content Packages (DLCs)를 참조하세요. |
| AllowedProduct | 선택 | 이 DLC(Downloadable Content Package) 타이틀이 속한 연관된 타이틀의 StoreId를 지정합니다. | AllowedProducts | |
| RelatedProducts | 선택 | 이 DLC 타이틀과 관련된 제품의 StoreId를 지정합니다. | Game | 자세한 내용은 Downloadable Content Packages (DLCs)를 참조하세요. |
| RelatedProduct | 선택 | 이 DLC 타이틀과 관련된 제품 StoreId의 특정 항목입니다. | RelatedProducts | |
| TargetDeviceFamilyForDLC | 선택 (DLC 전용) | DLC 패키지가 빌드되는 대상 플랫폼을 지정합니다. 허용되는 값은 XboxOne, Scarlett 및 PC입니다. | Game | |
| PublisherContent | 선택 | 이 기본 게임이 게시자 호스팅 콘텐츠 패키지를 지원함을 선언합니다. | Game | 자세한 내용은 Publisher Content 패키지를 참조하세요. |
| ManifestUrl | 선택 | 현재 게시자 호스팅 콘텐츠 패키지를 식별하는 JSON 매니페스트의 URL입니다. | PublisherContent | |
| PublisherContentBaseProduct | 선택 (Publisher Content 전용) | 이 게시자 호스팅 콘텐츠 패키지가 속한 기본 게임의 StoreId를 지정합니다. | Game | 패키지를 Publisher Content 패키지로 표시합니다. |
| PersistentLocalStorage | 선택 (콘솔 전용) | 타이틀의 Persistent Local Storage에 대한 원하는 크기를 지정합니다. | Game | Persistent Local Storage가 올바르게 작동하려면 타이틀 ID가 구성되어야 합니다. |
| SizeMB | 선택 (콘솔 전용) | Persistent Local Storage의 최소 크기를 MB 단위로 지정합니다. | PersistentLocalStorage | Persistent Local Storage가 올바르게 작동하려면 타이틀 ID가 구성되어야 합니다. |
| GrowableToMB | 선택 (콘솔 전용) | Persistent Local Storage가 시간이 지남에 따라 확장될 수 있는 최대 크기를 MB 단위로 지정합니다. | PersistentLocalStorage | Persistent Local Storage가 올바르게 작동하려면 타이틀 ID가 구성되어야 합니다. |
| VirtualMachine | 선택 (콘솔 전용) | 특정 XBOX One 하드웨어에서의 타이틀 메모리 할당을 지정합니다. | Game | |
| XboxOneXTitleMemory | 선택 (콘솔 전용) | XBOX One X 콘솔에 대한 타이틀 메모리 설정을 지정합니다. | Virtual Machine | 허용되는 값은 “Standard” 또는 “Advanced”입니다. |
| XboxLockhartTitleMemory | 선택 (콘솔 전용) | XBOX Series S 콘솔에 대한 타이틀 메모리 설정을 지정합니다. | Virtual Machine | 허용되는 값은 “Standard” 또는 “Advanced”입니다. |
| XboxAnacondaTitleMemory | 선택 (콘솔 전용) | XBOX Series X 콘솔에 대한 타이틀 메모리 설정을 지정합니다. | Virtual Machine | 허용되는 값은 “Standard” 또는 “Advanced”입니다. |
| SMTEnabled | 선택 (콘솔 전용) | SMT의 활성화 여부를 지정합니다. | Virtual Machine | |
| RequiresEraShim | 선택 (콘솔 전용) | XBOX One ERA Shim이 필요한지 여부를 지정합니다. | Virtual Machine | |
| XboxCompatibility | 선택 (콘솔 전용) | 게임이 호환되는 최대 콘솔 세대를 지정합니다. | Virtual Machine | 개발자는 XBOX Series X|S에서 하위 호환성으로 실행되는 XBOX One 타이틀에 이를 사용합니다. 주요 용도는 추가 메모리와 같은 향상된 기능에 액세스하는 것입니다. 허용되는 값은 일반 하위 호환 타이틀처럼 동작하는 “XboxOne”과, 하위 호환 타이틀이 향상된 기능에 액세스할 수 있게 해주는 “Scarlett”입니다. |
| DlcCompatibility | 선택 (콘솔 전용) | 게임이 호환되는 DLC의 최소 콘솔 세대를 지정합니다. | Virtual Machine | 개발자는 XBOX Series X|S 콘솔에서 실행되지만 XBOX One용으로 빌드된 DLC 패키지를 로드하고자 하는 XBOX One 타이틀에 이를 사용합니다. 이는 DLC가 고속 스토리지뿐만 아니라 모든 스토리지에 존재할 수 있게 합니다. |
| MSAFullTrust | 선택 (PC Desktop 전용) | 타이틀이 “MSA Full Trust”로 선언되는지를 지정합니다. | Game | 계정 관리자가 별도로 언급하지 않는 한 사용해서는 안 됩니다. |
| MSAAppId | 필수 | 타이틀의 MSA App ID를 지정하며, 이는 XBOX Live 서비스와의 ID를 위해 XBOX Live Title ID(다음과 같음)와 함께 사용됩니다. | Game | 2022년 3월 Microsoft Game Development Kit (GDK)부터 TitleId 요소가 지정된 경우 MSAAppId 요소가 있어야 합니다. |
| TitleId | 선택 | XBOX Live 서비스와의 ID에 사용되는 타이틀의 XBOX Live Title ID를 지정합니다. | Game | 2022년 3월 Microsoft Game Development Kit (GDK)부터 MSAAppId 요소가 지정된 경우 TitleId 요소가 있어야 합니다. |
| RequiresXboxLive | 선택 | 타이틀 실행에 XBOX Live 연결이 필요한지를 지정합니다. | Game | |
| ExtendedAttributeList | 선택 | 기존 요소 외에 추가 특성에 대한 폴백입니다. | Game | 계정 관리자가 별도로 언급하지 않는 한 사용해서는 안 됩니다. |
| ExtendedAttribute | 선택 | Extended Attribute List의 특정 폴백 지정입니다. | Game | 계정 관리자가 별도로 언급하지 않는 한 사용해서는 안 됩니다. |
| DesktopRegistration | 선택 (PC Desktop 전용) | PC 데스크톱 플랫폼에서 타이틀을 등록할 때 사용할 특성을 지정합니다. | Game | |
| ProcessorArchitecture | 선택 (PC Desktop 전용) | 게임 실행 파일과 일치하는 프로세서 아키텍처를 지정합니다. | DesktopRegistration | 이 요소에 대한 특성 예는 x64 및 x86입니다. |
| MainPackageDependency | 선택 (PC Desktop DLC 전용) | DLC가 속한 베이스 패키지의 ID를 지정합니다. | DesktopRegistration | |
| DependencyList | 선택 (PC Desktop 전용) | 타이틀 패키지를 설치하기 전에 설치해야 하는 프레임워크 패키지를 결정합니다. | DesktopRegistration | 자식 요소 사용에 대한 자세한 내용은 Dependency를 참조하세요. |
| KnownDependency | 선택 (PC Desktop 전용) | 일반적으로 사용되는 프레임워크 패키지 중 하나를 지정하는 바로 가기입니다. | DependencyList | Name의 특성 지정이 필수이며 MinVersion은 자동으로 설정됩니다. 가능한 바로 가기 목록은 다음 스키마의 ST_KnownDependency 섹션을 참조하세요. |
| Dependency | 선택 (PC Desktop 전용) | 타이틀 전에 설치되어야 하는 특정 프레임워크 패키지와 버전입니다. | DependencyList | Name과 MinVersion의 특성 지정이 설정되어야 합니다. |
| CustomInstallActions | 선택 (PC Desktop 전용) | 게임이 처음 실행될 때 관리자 권한으로 커스텀 설치 관리자 작업을 지정합니다. | DesktopRegistration | 지정하는 실행 파일은 게임의 베이스 폴더 아래 “Installers” 폴더에 있어야 합니다. Installers 폴더에 다른 파일을 포함하지 마세요. |
| Folder | 선택 (PC Desktop 전용) | Installers의 폴더 위치를 지정합니다. | CustomInstallActions | |
| InstallActionList | 선택 (PC Desktop 전용) | 실행 파일, 이름 및 인수를 포함한 설치 작업 목록을 지정합니다. | CustomInstallActions | |
| InstallAction | 선택 (PC Desktop 전용) | Install Action List 내의 설치 작업을 지정합니다. | InstallActionList | 최대 100개 항목입니다. |
| RepairActionList | 선택 (PC Desktop 전용) | 복구 작업 목록을 지정합니다. | CustomInstallActions | |
| RepairAction | 선택 (PC Desktop 전용) | Repair Action List 내의 복구 작업을 지정합니다. | RepairActionList | 최대 100개 항목입니다. |
| UninstallActionList | 선택 (PC Desktop 전용) | 제거 작업 목록을 지정합니다. | CustomInstallActions | |
| UninstallAction | 선택 (PC Desktop 전용) | Uninstall Action List 내의 제거 작업을 지정합니다. | UninstallActionList | 최대 100개 항목입니다. |
| ModFolder | 선택 (PC Desktop 전용) | 게임 파일에 대한 최종 사용자 모드의 위치를 정의합니다. | DesktopRegistration | 이 요소는 2022년 3월 Microsoft Game Development Kit (GDK)부터 더 이상 사용되지 않습니다. |
| DisableRegistryWriteVirtualization | 선택 (PC Desktop 전용) | 게임이 운영 체제 전체에 걸친 레지스트리 쓰기를 수행해야 하는 경우 true로 설정합니다. | DesktopRegistration | 이 요소는 2022년 3월 Microsoft Game Development Kit (GDK)부터 더 이상 사용되지 않습니다. |
| DisableFilesystemWriteVirtualization | 선택 (PC Desktop 전용) | 게임이 운영 체제 전체에 걸친 파일 쓰기를 수행해야 하는 경우 true로 설정합니다. | DesktopRegistration | 이 요소는 2022년 3월 Microsoft Game Development Kit (GDK)부터 더 이상 사용되지 않습니다. |
| EnableWritesToPackageRoot | 선택 (PC Desktop 전용) | 게임이 패키지 설치 위치에 쓰기를 수행해야 하는 경우 true로 설정합니다. | DesktopRegistration | 이 요소는 2022년 3월 Microsoft Game Development Kit (GDK)부터 더 이상 사용되지 않습니다. |
| MultiplayerProtocol | 선택 (PC Desktop 전용) | “ms-xbl-multiplayer” 프로토콜을 통해 타이틀 내 프로토콜 활성화를 허용합니다. | DesktopRegistration | 주로 XBOX Game Bar에서 게임/멀티플레이어 게임 초대를 시작할 수 있도록 하는 데 사용됩니다. |
| FileTypeAssociation | 선택 (PC Desktop 전용) | 파일 형식을 패키지 내 실행 파일과 연결할 수 있게 합니다. | DesktopRegistration | 예를 들어 타이틀의 맵 편집기에 대한 특정 확장자입니다. 자세한 내용은 File Type Activation을 참조하세요. |
| DisplayName | 선택 (PC Desktop 전용) | File Type Association에 대한 표시 이름을 지정합니다. | FileTypeAssociation | |
| Logo | 선택 (PC Desktop 전용) | File Type Association에 대한 로고를 지정합니다. | FileTypeAssociation | |
| InfoTip | 선택 (PC Desktop 전용) | File Type Association에 대한 Info Tip을 지정합니다. | FileTypeAssociation | |
| EditFlags | 선택 (PC Desktop 전용) | File Type Association에 대한 Edit Flags를 지정합니다. | FileTypeAssociation | |
| SupportedFileTypes | 선택 (PC Desktop 전용) | File Type Association에 대해 지원되는 파일 형식을 지정합니다. | FileTypeAssociation | 자세한 내용은 File Type Activation을 참조하세요. |
| FileType | 선택 (PC Desktop 전용) | SupportedFileTypes 요소의 일부로 사용될 파일 형식 확장자를 지정합니다. | SupportedFileTypes | 자세한 내용은 File Type Activation을 참조하세요. |
| NoCodePCRoot | 선택 (PC Desktop 전용) | 패키지에 no code cloud saves가 활성화된 경우 사용할 세이브 게임이 저장되는 로컬 폴더를 지정합니다. | SaveGameStorage | |
| DevelopmentOnly | 선택 (콘솔 전용) | 개발 전용 속성 목록입니다. | Game | |
| ContentIdOverride | 선택 (콘솔 전용) | 개발 전용으로 게임의 ContentID에 대한 재정의입니다. | DevelopmentOnly | 패키지가 설치된 상태에서 xbapp list /d /nosystem 명령을 사용하여 타이틀의 ContentID를 확인하세요. |
| EKBIDOverride | 선택 (콘솔 전용) | 개발 전용으로 게임의 EKBID(트라이얼 버전 ID)에 대한 재정의입니다. | DevelopmentOnly | 패키지가 설치된 상태에서 xbapp list /d 명령을 사용하여 타이틀의 EKBID를 확인하세요. |
| DebugNetworkPortList | 선택 (콘솔 전용) | Development Kit에서 개발용으로 열 추가 포트 목록입니다. | DevelopmentOnly | |
| DebugNetworkPort | 선택 (콘솔 전용) | Dev kit에서 개발용으로 열 추가 포트입니다. | DebugNetworkPortList |
오류 코드
MicrosoftGame.config 파일 작업 시 다음 오류 코드가 발생할 수 있습니다. 전체 목록은 Error codes를 참조하세요.| Code | Value | Description |
|---|---|---|
| E_GAME_MISSING_GAME_CONFIG | 0x87e5001F | 이 앱에는 필수 MicrosoftGame.Config 파일이 없습니다. |
| E_GAMERUNTIME_OPTIONS_NOT_SUPPORTED | 0x8924010A | 전달된 옵션이 게임의 패키지와 호환되지 않습니다. Game config 정보는 패키지와 일치해야 합니다. |
| E_GAMERUNTIME_GAMECONFIG_BAD_FORMAT | 0x8924010B | Initialize에 전달된 game config를 파싱할 수 없습니다. |
| E_GAMEUSER_NO_TITLE_ID | 0x89245108 | XBOX Live TitleId가 구성되어야 합니다. |
| E_GAMEUSER_UNKNOWN_GAME_IDENTITY | 0x89245109 | 게임 ID가 인식되지 않습니다. MSAAppId 및 TitleId가 게임에 연결된 것과 일치하지 않습니다. |
| E_GAMEUSER_INVALID_APP_CONFIGURATION | 0x89245112 | game config의 MSAAppId가 유효하지 않거나 인증 스택용으로 구성되지 않았습니다. |
| E_GAMEUSER_MALFORMED_MSAAPPID | 0x89245113 | game config의 MSAAppId가 예상 형식(16자 문자열 또는 GUID)과 일치하지 않습니다. |
| E_GAMEUSER_INCONSISTENT_MSAAPPID_AND_TITLEID | 0x89245114 | game config의 MSAAppId 및 TitleId가 게임에 연결된 것과 일치하지 않습니다. |
| E_GAMEPACKAGE_NO_STORE_ID | 0x89245202 | 애플리케이션의 game config에 StoreId 특성이 설정되어야 합니다. |
| E_GAMEPACKAGE_DLC_NOT_SUPPORTED | 0x89245206 | 게임이 DLC 패키지를 지원하지 않습니다. game config에서 올바른 DLC 호환성을 확인하세요. |
| E_GAMEPACKAGE_DUPLICATE_ID_VALUES | 0x89245207 | 패키지에 동일한 ‘ID’ 특성에 매핑되는 실행 파일이 두 개 이상 포함되어 있습니다. ‘Executable’ 요소에서 중복된 ‘ID’ 특성을 확인하세요. |
| E_GAMEPACKAGE_CONFIG_NO_ROOT_NODE | 0x89245209 | MicrosoftGame.config 파일에서 루트 <Game> 노드를 찾을 수 없습니다. 파일이 올바르게 형식화되었는지 확인하세요. |
| E_GAMEPACKAGE_CONFIG_ZERO_VERSION | 0x8924520A | MicrosoftGame.config의 ‘Identity’ 노드에 있는 ‘Version’ 특성은 0.0.0.0이 될 수 없습니다. 이 특성을 증가시키거나 제거하세요. 버전이 지정되지 않은 경우 기본값은 1.0.0.0입니다. |
| E_GAMEPACKAGE_CONFIG_NO_MSAAPPID_NOTITLEID | 0x8924520B | MicrosoftGame.config의 ‘MSAAppId’ 또는 ‘TitleId’ 요소가 누락되었습니다. configVersion >= 1을 사용할 때는 둘 다 지정되어야 합니다. |
| E_GAMEPACKAGE_CONFIG_DEPRECATED_PC_ENTRIES | 0x8924520C | DesktopRegistration 항목 “modFolder”, “enableWritesToPackageRoot”, “disableRegistryWriteVirtualization” 및 “disableFilesystemWriteVirtualization”은 configVersion >= 1에서 더 이상 사용되지 않습니다. |
| E_GAMEPACKAGE_CONFIG_SUM_REQUIRES_MSAAPPID | 0x8924520D | Simplified User Model (AdvancedUserModel 요소) 및 configVersion >= 1을 사용할 때는 ‘MSAAppId’ 및 ‘TitleId’ 요소가 필수입니다. |
| E_GAMEPACKAGE_CONFIG_NO_CODE_CLOUD_SAVES_REQUIRES_MSAAPPID | 0x8924520E | No Code Cloud Saves (NoCodePCRoot 요소) 및 configVersion >= 1을 사용할 때는 ‘MSAAppId’ 및 ‘TitleId’ 요소가 필수입니다. |
| E_GAMEPACKAGE_CONFIG_MSAAPPID_OR_TITLEID_IS_DEFAULT | 0x8924520F | ’MSAAppId’ 또는 ‘TitleId’ 요소가 기본값입니다. NoCodePCRoot 또는 AdvancedUserModel이 지정된 경우 configVersion >= 1을 사용할 때 TitleId와 MSAAppId 모두 Partner Center의 유효한 ID여야 합니다. |
샘플 MicrosoftGame.config 파일
다음 MicrosoftGame.config는 XBOX Series X|S에 대해 요소가 어떻게 사용되는지를 보여주는 예제 config입니다(XBOX One에 대한 차이점에 대한 주석 포함). PC용 MicrosoftGame.config의 예는 PC용 패키징 시작하기를 참조하세요.<?xml version="1.0" encoding="utf-8"?>
<Game configVersion="1">
<Identity Name="41336PublisherName.ExampleGame" Publisher="CN=A4954634-DF4B-47C7-AB70-D3215D246AF1" Version="1.6.0.0"/>
<GameOsVersion>**REPLACE**</GameOsVersion>
<MediaCapture>
<GameDVRSystemComponent>true</GameDVRSystemComponent>
<BlockBroadcast>0</BlockBroadcast>
<BlockGameDVR>0</BlockGameDVR>
</MediaCapture>
<PersistentLocalStorage>
<SizeMB>322</SizeMB>
</PersistentLocalStorage>
<MSAAppId>0000000000000000</MSAAppId>
<TitleId>FFFFFFFF</TitleId>
<StoreId>9NZTKMP36L8J</StoreId>
<RelatedProducts>
<RelatedProduct>9NZTKMP36L8J</RelatedProduct>
<RelatedProduct>9NQJV5BMKR6C</RelatedProduct>
<RelatedProduct>9PNX38847DWW</RelatedProduct>
</RelatedProducts>
<VirtualMachine>
<XboxLockhartTitleMemory>Standard</XboxLockhartTitleMemory>
<XboxAnacondaTitleMemory>Standard</XboxAnacondaTitleMemory>
<!-- <XboxOneXTitleMemory>Standard</XboxOneXTitleMemory> if MicrosoftGame.config is for Xbox One instead of Xbox Series X|S. -->
</VirtualMachine>
<MSAFullTrust>false</MSAFullTrust>
<ExecutableList>
<!-- TargetDeviceFamily="XboxOne" if the MicrosoftGame.config is for Xbox One instead of Xbox Series X|S. -->
<Executable Name="ExampleGame.exe"
TargetDeviceFamily="Scarlett"
Id="Game"
IsDevOnly="false"
OverrideDisplayName="Example Game"
OverrideLogo="OverriddenLogo.png" />
<Executable Name="ExampleGame_Debug.exe"
IsDevOnly="true"/>
<Executable Name="ExampleGame_Profile.exe"
IsDevOnly="true" />
</ExecutableList>
<ShellVisuals DefaultDisplayName="Example Game"
PublisherDisplayName="Example Publisher"
StoreLogo="StoreLogoFile.png"
Square150x150Logo="LogoFile150x150.png"
Square44x44Logo="LogoFile44x44.png"
Square480x480Logo="LogoFile480x480.png"
Description="Example Game"
ForegroundText="light"
BackgroundColor="#ffffff"
SplashScreenImage="SplashScreen.png"/>
<Resources>
<Resource Language="en-us"/>
<Resource Language="de-de"/>
<Resource Language="es-mx"/>
</Resources>
<DevelopmentOnly>
<DebugNetworkPortList>
<DebugNetworkPort>4600</DebugNetworkPort>
</DebugNetworkPortList>
</DevelopmentOnly>
</Game>
MicrosoftGame.config용 XSD 스키마
MicrosoftGame.config 파일에 대한 최신 스키마는 Microsoft Game Development Kit (GDK) 설치의 <install root>/bin 폴더에 GameConfigSchema.xsd로 있습니다. 다음은 GameConfigSchema.xsd의 예입니다.<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- Types -->
<xs:simpleType name="ST_NonEmptyString">
<xs:restriction base="xs:string">
<xs:minLength value="1"/>
<xs:maxLength value="32767"/>
<xs:pattern value="[^\s]|([^\s].*[^\s])"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ST_GUID">
<xs:restriction base="ST_NonEmptyString">
<xs:pattern value="[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ST_VersionQuad">
<xs:restriction base="ST_NonEmptyString">
<xs:pattern value="(0|[1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])(\.(0|[1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])){3}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ST_Hex8">
<xs:restriction base="ST_NonEmptyString">
<xs:pattern value="[0-9a-fA-F]{8}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ST_Hex16">
<xs:restriction base="ST_NonEmptyString">
<xs:pattern value="[0-9a-fA-F]{16}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ST_PLSSize">
<xs:restriction base="xs:integer">
<!-- The actual max is determined by policy -->
<xs:maxInclusive value="100000"/>
<xs:minInclusive value="10"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ST_GrowablePLSSize">
<xs:restriction base="xs:integer">
<xs:minInclusive value="10"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="CT_PersistentLocalStorage">
<xs:all>
<xs:element name="SizeMB" type="ST_PLSSize" minOccurs="0" maxOccurs="1"/>
<xs:element name="GrowableToMB" type="ST_GrowablePLSSize" minOccurs="0" maxOccurs="1"/>
</xs:all>
</xs:complexType>
<xs:simpleType name="ST_FileNameCharSet">
<xs:restriction base="ST_NonEmptyString">
<xs:pattern value="[^<>":%\|\?\*\x01-\x1f]+"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ST_FileName">
<xs:restriction base="ST_FileNameCharSet">
<xs:pattern value="([^/\\]*[^./\\]+)(\\[^/\\]*[^./\\]+)*"/>
<xs:pattern value="([^/\\]*[^./\\]+)(/[^/\\]*[^./\\]+)*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ST_FileNameNoPath">
<xs:restriction base="ST_FileName">
<xs:pattern value="[^\\/]+"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ST_AsciiWindowsId">
<xs:restriction base="ST_NonEmptyString">
<xs:pattern value="([A-Za-z][A-Za-z0-9]*)(\.[A-Za-z][A-Za-z0-9]*)*"/>
<xs:maxLength value="255"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ST_DeviceFamily">
<xs:restriction base="xs:string">
<xs:enumeration value="XboxOne"/>
<xs:enumeration value="Scarlett"/>
<xs:enumeration value="PC"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ST_ApplicationId">
<xs:restriction base="ST_AsciiWindowsId">
<xs:maxLength value="64"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ST_StoreId">
<xs:restriction base="xs:string">
<xs:minLength value="12"/>
<xs:maxLength value="12"/>
<xs:pattern value="[0-9bcdfghjklmnpqrstvwxzBCDFGHJKLMNPQRSTVWXZ]{12}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ST_Executable">
<xs:restriction base="ST_FileName">
<xs:pattern value=".+\.([Ee][Xx][Ee])"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ST_ExecutableNoPath">
<xs:restriction base="ST_FileName">
<xs:pattern value="[^\\]+\.([Ee][Xx][Ee])"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ST_ImageFile">
<xs:restriction base="ST_FileName">
<xs:pattern value=".+\.(png)"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ST_ResourceReference">
<xs:restriction base="ST_NonEmptyString">
<xs:pattern value="\bms-resource:.{1,256}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ST_DisplayName">
<xs:union memberTypes="ST_ResourceReference">
<xs:simpleType>
<xs:restriction base="ST_NonEmptyString">
<xs:maxLength value="256"/>
</xs:restriction>
</xs:simpleType>
</xs:union>
</xs:simpleType>
<xs:simpleType name="ST_Description">
<xs:restriction base="ST_NonEmptyString">
<xs:pattern value="[^\x01-\x1f]+"/>
<xs:maxLength value="2048"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ST_ForegroundText">
<xs:restriction base="xs:string">
<xs:enumeration value="light"/>
<xs:enumeration value="dark"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ST_Color">
<xs:restriction base="xs:string">
<xs:pattern value="#[\da-fA-F]{6}"/>
<xs:pattern value="aliceBlue|antiqueWhite|aqua|aquamarine|azure|beige|bisque|black|blanchedAlmond|blue|blueViolet|brown|burlyWood"/>
<xs:pattern value="cadetBlue|chartreuse|chocolate|coral|cornflowerBlue|cornsilk|crimson|cyan|darkBlue|darkCyan|darkGoldenrod|darkGray"/>
<xs:pattern value="darkGreen|darkKhaki|darkMagenta|darkOliveGreen|darkOrange|darkOrchid|darkRed|darkSalmon|darkSeaGreen|darkSlateBlue"/>
<xs:pattern value="darkSlateGray|darkTurquoise|darkViolet|deepPink|deepSkyBlue|dimGray|dodgerBlue|firebrick|floralWhite|forestGreen"/>
<xs:pattern value="fuchsia|gainsboro|ghostWhite|gold|goldenrod|gray|green|greenYellow|honeydew|hotPink|indianRed|indigo|ivory"/>
<xs:pattern value="khaki|lavender|lavenderBlush|lawnGreen|lemonChiffon|lightBlue|lightCoral|lightCyan|lightGoldenrodYellow|lightGreen"/>
<xs:pattern value="lightGray|lightPink|lightSalmon|lightSeaGreen|lightSkyBlue|lightSlateGray|lightSteelBlue|lightYellow|lime|limeGreen"/>
<xs:pattern value="linen|magenta|maroon|mediumAquamarine|mediumBlue|mediumOrchid|mediumPurple|mediumSeaGreen|mediumSlateBlue|mediumSpringGreen"/>
<xs:pattern value="mediumTurquoise|mediumVioletRed|midnightBlue|mintCream|mistyRose|moccasin|navajoWhite|navy|oldLace|olive|oliveDrab"/>
<xs:pattern value="orange|orangeRed|orchid|paleGoldenrod|paleGreen|paleTurquoise|paleVioletRed|papayaWhip|peachPuff|peru|pink|plum"/>
<xs:pattern value="powderBlue|purple|red|rosyBrown|royalBlue|saddleBrown|salmon|sandyBrown|seaGreen|seaShell|sienna|silver|skyBlue"/>
<xs:pattern value="slateBlue|slateGray|snow|springGreen|steelBlue|tan|teal|thistle|tomato|transparent|turquoise|violet|wheat|white"/>
<xs:pattern value="whiteSmoke|yellow|yellowGreen"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="CT_Resources">
<xs:sequence>
<xs:element name="Resource" maxOccurs="200" minOccurs="0" >
<xs:complexType>
<xs:attribute name="Language" type="xs:language" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="CT_Identity">
<xs:attribute name="Name" type="ST_PackageName" use="required"/>
<xs:attribute name="Publisher" type="ST_Publisher" use="required"/>
<xs:attribute name="ResourceId" type="ST_ResourceId" use="optional"/>
<xs:attribute name="Version" type="ST_VersionQuad" use="optional"/>
</xs:complexType>
<xs:complexType name="CT_ShellVisuals">
<xs:attribute name="DefaultDisplayName" type="ST_DisplayName" use="optional"/>
<xs:attribute name="PublisherDisplayName" type="ST_DisplayName" use="optional"/>
<xs:attribute name="StoreLogo" type="ST_ImageFile" use="optional"/>
<xs:attribute name="Square150x150Logo" type="ST_ImageFile" use="optional"/>
<xs:attribute name="Square44x44Logo" type="ST_ImageFile" use="optional"/>
<xs:attribute name="Square480x480Logo" type="ST_ImageFile" use="optional"/>
<xs:attribute name="Description" type="ST_Description" use="optional"/>
<xs:attribute name="ForegroundText" type="ST_ForegroundText" use="optional"/>
<xs:attribute name="BackgroundColor" type="ST_Color" use="optional"/>
<xs:attribute name="SplashScreenImage" type="ST_ImageFile" use="optional"/>
</xs:complexType>
<xs:simpleType name="ST_MemoryConfig">
<xs:restriction base="xs:string">
<xs:enumeration value="Standard"/>
<xs:enumeration value="Advanced"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ST_ConsoleGeneration">
<xs:restriction base="xs:string">
<xs:enumeration value="XboxOne"/>
<xs:enumeration value="Scarlett"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="CT_VirtualMachine">
<xs:all>
<xs:element name="XboxOneXTitleMemory" type="ST_MemoryConfig" minOccurs="0"/>
<xs:element name="XboxAnacondaTitleMemory" type="ST_MemoryConfig" minOccurs="0"/>
<xs:element name="SMTEnabled" type="xs:boolean" minOccurs="0"/>
<xs:element name="RequiresEraShim" type="xs:boolean" minOccurs="0"/>
<xs:element name="XboxCompatibility" type="ST_ConsoleGeneration" minOccurs="0"/>
<xs:element name="DlcCompatibility" type="ST_ConsoleGeneration" minOccurs="0"/>
<xs:element name="XboxLockhartTitleMemory" type="ST_MemoryConfig" minOccurs="0"/>
</xs:all>
</xs:complexType>
<xs:complexType name="CT_DesktopRegistration">
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="ProcessorArchitecture" type="ST_ProcessorArchitecture" minOccurs="0"/>
<xs:element name="MainPackageDependency " minOccurs="0">
<xs:complexType>
<xs:attribute name="Name" type="ST_PackageName"/>
</xs:complexType>
</xs:element>
<xs:element name="DependencyList" type="CT_DependencyList" minOccurs="0"/>
<xs:element name="CustomInstallActions" type="CT_CustomInstallActions" minOccurs="0"/>
<xs:element name="ModFolder" minOccurs="0">
<xs:complexType>
<xs:attribute name="Name" type="ST_FileNameNoPath" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="DisableRegistryWriteVirtualization" type="xs:boolean" minOccurs="0"/>
<xs:element name="DisableFilesystemWriteVirtualization" type="xs:boolean" minOccurs="0"/>
<xs:element name="EnableWritesToPackageRoot" type="xs:boolean" minOccurs="0"/>
<xs:element name="MultiplayerProtocol" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:boolean">
<xs:attribute name="Executable" type="ST_Executable" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="FileTypeAssociation" type="CT_FileTypeAssociation" minOccurs="0" maxOccurs="100"/>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="ST_KnownDependency">
<xs:restriction base="xs:string">
<xs:enumeration value="DX11"/>
<xs:enumeration value="VC11"/>
<xs:enumeration value="VC12"/>
<xs:enumeration value="VC14"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ST_ProcessorArchitecture">
<xs:restriction base="xs:string">
<xs:enumeration value="x64"/>
<xs:enumeration value="x86"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="CT_DependencyList">
<xs:sequence maxOccurs="128" minOccurs="0">
<xs:element name="KnownDependency" minOccurs="0">
<xs:complexType>
<xs:attribute name="Name" type="ST_KnownDependency" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="Dependency" minOccurs="0">
<xs:complexType>
<xs:attribute name="Name" type="ST_PackageName" use="required"/>
<xs:attribute name="MinVersion" type="ST_VersionQuad" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="CT_CustomInstallAction">
<xs:attribute name="File" type="ST_FileName" use="required"/>
<xs:attribute name="Name" type="ST_NonEmptyString" use="required"/>
<xs:attribute name="Arguments" type="ST_NonEmptyString" />
</xs:complexType>
<xs:complexType name="CT_InstallActionList">
<xs:sequence maxOccurs="100" minOccurs="0">
<xs:element name="InstallAction" type="CT_CustomInstallAction" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="CT_RepairActionList">
<xs:sequence maxOccurs="100" minOccurs="0">
<xs:element name="RepairAction" type="CT_CustomInstallAction" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="CT_UninstallActionList">
<xs:sequence maxOccurs="100" minOccurs="0">
<xs:element name="UninstallAction" type="CT_CustomInstallAction" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="CT_CustomInstallActions">
<xs:all>
<xs:element name="Folder" type="ST_FileName" minOccurs="1"/>
<xs:element name="InstallActionList" type="CT_InstallActionList" minOccurs="0"/>
<xs:element name="RepairActionList" type="CT_RepairActionList" minOccurs="0"/>
<xs:element name="UninstallActionList" type="CT_UninstallActionList" minOccurs="0"/>
</xs:all>
</xs:complexType>
<xs:complexType name="CT_ExecutableList">
<xs:sequence maxOccurs="unbounded" minOccurs="0">
<xs:element name="Executable">
<xs:complexType>
<xs:attribute name="Name" type="ST_Executable" use="required"/>
<xs:attribute name="TargetDeviceFamily" type="ST_DeviceFamily" use="optional"/>
<xs:attribute name="Id" type="ST_ApplicationId" use="optional"/>
<xs:attribute name="IsDevOnly" type="xs:boolean" use="optional"/>
<xs:attribute name="OverrideDisplayName" type="ST_DisplayName" use="optional"/>
<xs:attribute name="OverrideLogo" type="ST_ImageFile" use="optional"/>
<xs:attribute name="OverrideSquare480x480Logo" type="ST_ImageFile" use="optional"/>
<xs:attribute name="OverrideSquare44x44Logo" type="ST_ImageFile" use="optional"/>
<xs:attribute name="OverrideSplashScreenImage" type="ST_ImageFile" use="optional"/>
<xs:attribute name="Alias" type="ST_ExecutableNoPath" use="optional"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="CT_AllowedProductsList">
<xs:sequence maxOccurs="unbounded" minOccurs="0">
<xs:element name="AllowedProduct" type="ST_StoreId"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="CT_PublisherContent">
<xs:all>
<xs:element name="ManifestUrl" type="xs:anyURI" minOccurs="1"/>
</xs:all>
</xs:complexType>
<xs:complexType name="CT_ExtendedAttributeList">
<xs:sequence maxOccurs="unbounded" minOccurs="0">
<xs:element name="ExtendedAttribute">
<xs:complexType>
<xs:attribute name="Name" type="ST_NonEmptyString" use="optional"/>
<xs:attribute name="Value" type="ST_NonEmptyString" use="optional"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="CT_RelatedProductsList">
<xs:sequence maxOccurs="unbounded" minOccurs="0">
<xs:element name="RelatedProduct" type="ST_StoreId"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="CT_MediaCapture">
<xs:all>
<xs:element name="GameDVRSystemComponent" type="xs:boolean" minOccurs="0"/>
<xs:element name="BlockBroadcast" type="xs:boolean" minOccurs="0"/>
<xs:element name="BlockGameDVR" type="xs:boolean" minOccurs="0"/>
</xs:all>
</xs:complexType>
<xs:simpleType name="ST_AllowedAsciiCharSet">
<xs:restriction base="ST_NonEmptyString">
<xs:pattern value="[-_. A-Za-z0-9]+"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ST_AsciiIdentifier">
<xs:restriction base="ST_AllowedAsciiCharSet">
<xs:pattern value="[^_ ]+"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ST_PackageName">
<xs:restriction base="ST_AsciiIdentifier">
<xs:minLength value="3"/>
<xs:maxLength value="50"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ST_DistinguishedName">
<xs:restriction base="ST_NonEmptyString">
<xs:pattern value="(CN|L|O|OU|E|C|S|STREET|T|G|I|SN|DC|SERIALNUMBER|(OID\.(0|[1-9][0-9]*)(\.(0|[1-9][0-9]*))+))=(([^,+="<>#;])+|".*")(, ((CN|L|O|OU|E|C|S|STREET|T|G|I|SN|DC|SERIALNUMBER|(OID\.(0|[1-9][0-9]*)(\.(0|[1-9][0-9]*))+))=(([^,+="<>#;])+|".*")))*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ST_Publisher">
<xs:restriction base="ST_DistinguishedName">
<xs:maxLength value="8192"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ST_ResourceId">
<xs:restriction base="ST_AsciiIdentifier">
<xs:maxLength value="30"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ST_Port">
<xs:restriction base="ST_NonEmptyString">
<xs:pattern value="[1-9][0-9]{0,4}"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="CT_DebugNetworkPortList">
<xs:sequence maxOccurs="unbounded" minOccurs="0">
<xs:element name="DebugNetworkPort" type="ST_Port"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="CT_DevelopmentOnly">
<xs:all>
<xs:element name="ContentIdOverride" type="ST_GUID" minOccurs="0"/>
<xs:element name="EKBIDOverride" type="ST_GUID" minOccurs="0"/>
<xs:element name="DebugNetworkPortList" type="CT_DebugNetworkPortList" minOccurs="0"/>
</xs:all>
</xs:complexType>
<xs:simpleType name="ST_FTAInfoTip">
<xs:restriction base="ST_NonEmptyString">
<xs:maxLength value="1024"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ST_ContentTypeCharSet">
<xs:restriction base="ST_NonEmptyString">
<xs:pattern value="[!#$%&'*+-.^_`|~0-9a-z/]*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ST_ContentType">
<xs:restriction base="ST_ContentTypeCharSet">
<xs:pattern value="[^/]{1,127}/[^/]{1,127}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ST_FileType">
<xs:restriction base="ST_FileNameCharSet">
<xs:pattern value="\.[^.\\]+"/>
<xs:maxLength value="64"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="CT_FTASupportedFileTypes">
<xs:sequence>
<xs:element name="FileType" maxOccurs="1000" >
<xs:complexType>
<xs:simpleContent>
<xs:extension base="ST_FileType">
<xs:attribute name="ContentType" type="ST_ContentType" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="ST_FTAName">
<xs:restriction base="ST_AllowedAsciiCharSet">
<xs:pattern value="[^ A-Z]+"/>
<xs:maxLength value="100"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="CT_FileTypeAssociation">
<xs:all>
<xs:element name="DisplayName" type="ST_DisplayName" minOccurs="0"/>
<xs:element name="Logo" type="ST_ImageFile" minOccurs="0"/>
<xs:element name="InfoTip" type="ST_FTAInfoTip" minOccurs="0"/>
<xs:element name="EditFlags" minOccurs="0">
<xs:complexType>
<xs:attribute name="OpenIsSafe" type="xs:boolean" use="optional"/>
<xs:attribute name="AlwaysUnsafe" type="xs:boolean" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="SupportedFileTypes" type="CT_FTASupportedFileTypes"/>
</xs:all>
<xs:attribute name="Name" type="ST_FTAName" use="required"/>
<xs:attribute name="Executable" type="ST_Executable" use="optional"/>
</xs:complexType>
<xs:simpleType name="ST_GameSaveNoCodePcRootRelativeLocation">
<xs:restriction base="xs:string">
<xs:enumeration value="AppData"/>
<xs:enumeration value="Public"/>
<xs:enumeration value="LocalAppData"/>
<xs:enumeration value="LocalAppDataLow"/>
<xs:enumeration value="ProgramData"/>
<xs:enumeration value="SavedGames"/>
<xs:enumeration value="UserProfile"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ST_GameSaveUserQuotaSize">
<xs:restriction base="xs:integer">
<xs:maxInclusive value="4096"/>
<xs:minInclusive value="256"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="CT_SaveGameStorage">
<xs:all>
<xs:element name="NoCodePCRoot" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="ST_FileName">
<xs:attribute name="RelativeTo" type="ST_GameSaveNoCodePcRootRelativeLocation" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="SCID" type="ST_GUID" minOccurs="0"/>
<xs:element name="MaxUserQuota" type="ST_GameSaveUserQuotaSize" minOccurs="0"/>
</xs:all>
</xs:complexType>
<!-- Root -->
<xs:element name="Game">
<xs:complexType>
<xs:all>
<xs:element name="Identity" type="CT_Identity" />
<xs:element name="ShellVisuals" type="CT_ShellVisuals" minOccurs="0"/>
<xs:element name="Resources" type="CT_Resources" minOccurs="0"/>
<xs:element name="ExecutableList" type="CT_ExecutableList" minOccurs="0"/>
<xs:element name="GameOsVersion" type="ST_VersionQuad" minOccurs="0"/>
<xs:element name="MediaCapture" type="CT_MediaCapture" minOccurs="0"/>
<xs:element name="StoreId" type="ST_StoreId" minOccurs="0" />
<xs:element name="TargetDeviceFamilyForDLC" type="ST_DeviceFamily" minOccurs="0"/>
<xs:element name="AllowedProducts" type="CT_AllowedProductsList" minOccurs="0"/>
<xs:element name="RelatedProducts" type="CT_RelatedProductsList" minOccurs="0"/>
<xs:element name="PersistentLocalStorage" type="CT_PersistentLocalStorage" minOccurs="0"/>
<xs:element name="VirtualMachine" type="CT_VirtualMachine" minOccurs="0"/>
<xs:element name="MSAFullTrust" type="xs:boolean" minOccurs="0"/>
<xs:element name="MSAAppId" type="ST_NonEmptyString" minOccurs="0"/>
<xs:element name="TitleId" type="ST_Hex8" minOccurs="0"/>
<xs:element name="RequiresXboxLive" type="xs:boolean" minOccurs="0"/>
<xs:element name="ExtendedAttributeList" type="CT_ExtendedAttributeList" minOccurs="0"/>
<xs:element name="DesktopRegistration" type="CT_DesktopRegistration" minOccurs="0"/>
<xs:element name="DevelopmentOnly" type="CT_DevelopmentOnly" minOccurs="0"/>
<xs:element name="AdvancedUserModel" type="xs:boolean" default="true" minOccurs="0" maxOccurs="1" />
<xs:element name="SaveGameStorage" type="CT_SaveGameStorage" minOccurs="0"/>
<xs:element name="PublisherContentBaseProduct" type="ST_StoreId" minOccurs="0" maxOccurs="1"/>
<xs:element name="PublisherContent" type="CT_PublisherContent" minOccurs="0" maxOccurs="1"/>
</xs:all>
<xs:attribute name="configVersion" use="required">
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:maxInclusive value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
<xs:unique name="Resource_Language">
<xs:selector xpath="Resources/Resource"/>
<xs:field xpath="@Language"/>
</xs:unique>
</xs:element>
</xs:schema>
이전 요소 참조
- PrimaryServiceConfig는 SCID 호출을 정의하기 위해 XBOX One ERA AppxManifest.xml에서 사용된 요소입니다. 이는 이제 코드에서 정의되고 DevCenter에서 구성됩니다.
- VisualElements는 Store 로고 및 타이틀의 기타 시각적 측면을 정의하기 위해 XBOX One ERA AppxManifest.xml에서 사용된 요소입니다. 이는 이제 ShellVisuals에 정의됩니다.
- GpuAvailability는 GPU 가용성을 정의하기 위해 XBOX One ERA AppxManifest.xml에서 사용된 요소입니다. 이제는 모든 Microsoft Game Development Kit (GDK) 타이틀이 자동으로 가변 설정(가능한 한 많은 GPU)을 받으므로 자동으로 수행됩니다.
- ConnectedStorageQuota는 연결된 스토리지 크기를 정의하기 위해 XBOX One ERA AppxManifest.xml에서 사용된 요소입니다. 이는 이제 서버 측 설정에 의해 결정됩니다.
- LicenseOverrides는 ContentID, ProductID 및 EKBID에 대한 재정의를 정의하기 위해 XBOX One ERA debug_licensing_overrides.xml에서 사용된 요소입니다. 이는 이제 MicrosoftGame.config에서 직접 ContentIDOverride, StoreId 및 EKBIDOverride 요소로 관리됩니다.
- NetworkManifest 요소는 이전 버전의 MicrosoftGame.config에서 정의되었습니다. 이제 이는 DebugNetworkPortList 요소를 제외하고는 기존 Networking API를 통해 수행됩니다.
- XboxOneTitleMemoryMaxMB 및 XboxOneXTitleMemoryMaxMB는 이전 버전의 MicrosoftGame.config에서 사용된 요소입니다. XboxOneTitleMemoryMaxMB는 더 이상 구성 가능하지 않으며 타이틀 메모리 구성을 위한 XBOX One X 및 XBOX Series S|X 요소는 이제 XboxOneXTitleMemory, XboxLockhartTitleMemory 및 XboxAnacondaTitleMemory입니다.
- packageWriteRedirectionCompatibilityShim은 2020년 5월 GDK 이전에 이 기능을 활성화하는 ExtendedAttribute 값이었습니다. 2020년 5월 GDK부터는 이제 이 자체 요소인 EnableWritesToPackageRoot로 추적됩니다.
제한된 기능 구성
Microsoft Game Development Kit (GDK)에서 제한된 기능은 MicrosoftGame.config 요소를 통해 구성됩니다. 일반적으로 사용되는 기능 매핑은 다음과 같습니다.- runFullTrust 기능은 기본적으로 활성화되도록 구성됩니다.
- customInstallActions 기능은 CustomInstallActions 요소에 의해 구성됩니다.
DLC 패키지 생성의 일부로서의 MicrosoftGame.config
DLC 패키지를 위한 MicrosoftGame.config를 생성하는 방법에 대한 자세한 내용은 Downloadable content (DLC) packages를 참조하세요. 이 문서 맨 위로 돌아가기.함께 보기
MicrosoftGame.config 요소 참조MicrosoftGame.Config
MicrosoftGame.Config 개요
MicrosoftGame.Config 지역화
패키징 개요
PC Bootstrapper
