MicrosoftGame.config 추가 참조
요약
이 항목에서는 MicrosoftGame.config 파일에 대한 추가 세부 정보/참조 자료를 설명합니다. 섹션 내용은 다음과 같습니다.
섹션 | 설명 |
---|---|
요소 세부 정보 | MicrosoftGame.config 요소 이름, 용도 및 참고 사항 목록을 제공합니다. |
샘플 MicrosoftGame.config 파일 | Xbox 및 PC용 MicorosftGame.config 예시를 제공합니다. |
MicrosoftGame.config용 XSD 스키마 | MicrosoftGame.config의 유효성 검사에 사용되는 XSD 스키마의 세부 정보를 제공합니다. |
이전 요소 참조 | ERA 변경 사항에 대한 참조를 포함하여 변경된 요소 목록을 제공합니다. |
MicrosoftGame.config 및 DLC 만들기 | DLC 제품에 대한 MicrosoftGame.config를 만드는 방법에 대한 자세한 정보를 제공합니다. |
참고 항목 | MicrosoftGame.config와 관련된 추가 설명서 링크를 제공합니다. |
게임 configVersion 세부 정보
2022년 3월 Microsoft GDK(게임 개발 키트)부터 Microsoft GDK(게임 개발 키트) 도구를 사용하여 생성된 새 MicrosoftGame.config 파일에 대해 Game configVersion이 0에서 1로 업데이트되었습니다. 2023년 10월 GDK를 기준으로 모든 타이틀은 configVersion="1"을 사용해야 합니다. 제출 유효성 검사 도구는 configVersion="0"과 함께 2023년 10월 GDK를 사용하여 제출하는 모든 타이틀에 대한 실패를 보고합니다.
게임 configVersion 0과 1 사이의 변경 내용은 다음과 같습니다.
- MicrosoftGame.config에 지정된 경우(즉, TitleId가 지정된 경우 MSAAppId도 지정해야 함) MSAAppId 및 TitleId 요소가 필수 요소입니다.
- NoCodePCRoot 요소가 지정되었거나 AdvancedUserModel 요소가 false 값으로 설정된 경우 MSAAppId 및 TitleId 요소가 필수 요소입니다.
- ModFolder, EnableWritesToPackageRoot, DisableFilesystemWriteVirtualization 및 DisableRegistryWriteVirtualization 요소는 이제 configVersion 1에서 더 이상 사용되지 않습니다.
스키마에 정의된 어떤 요구 사항이 타이틀에 대해 실행되는지는 MicrosoftGame.config에서 이 값으로 정의됩니다.
<Game configVersion="1">
게임 configVersion은 0과 1의 값을 허용합니다. 이러한 새로운 요구 사항은 Game configVersion이 0으로 설정된 상태로 유지되므로 2022년 3월 Microsoft GDK(게임 개발 키트)로 업그레이드하는 기존 타이틀에 영향을 미치지 않습니다.
요소 세부 정보
이 섹션에서는 필요한 경우 요소 이름, 목적, 상위 노드 및 MicrosoftGame.config 내에서 정의 가능한 요소에 대한 추가 정보를 설명합니다.
노드 이름 | 필수 | 용도 | 상위 항목 | 참고 |
---|---|---|---|---|
게임 | 필수 | 다른 모든 콘텐츠를 포함하는 단일 상위 노드 | ||
ID | 필수 | 타이틀의 이름, 퍼블리셔, 버전 정의 | 게임 | 제목 정보는 제품 관리 -> 제품 ID의 파트너 센터에서 찾을 수 있습니다. 관리 파트너의 경우 관리 파트너를 위해 파트너 센터에서 게임 설정을 참조하세요. 타이틀을 고유하게 식별하기 위해 등록 중에 사용됩니다. Name 및 Publisher는 필수 필드입니다. Version은 지정하지 않으면 기본적으로 1.0.0.0입니다. 후속 콘솔 생성을 위한 추가 패키지는 기존 패키지 버전을 넘어 패키지 주요 버전을 증가시켜야 합니다. |
ShellVisuals | 빌드 패키지에 필요합니다. | 타이틀의 셸 상태 정의를 정의합니다. 이미지와 이름을 예로 들 수 있습니다. | 게임 | 등록 중에 셸에서 타이틀을 표면화하는 데 사용됩니다. |
Resources | 선택 | 셸 화면을 현지화하는 데 사용되는 언어 로캘 쌍의 목록입니다. | 게임 | 형식은 그대로 유지되므로 기존 AppxManifest에서 복사하여 붙여넣을 수 있습니다. 자세한 내용은 패키징을 참조하세요. |
리소스 | 선택 | 리소스 목록에 있는 언어 로캘의 개별 항목입니다. | 리소스 | |
ExecutableList | 필수 | 타이틀 실행 파일의 목록입니다. | 게임 | 타이틀을 성공적으로 등록하거나 패키징하려면 하나 이상의 항목이 필요합니다. "IsDevOnly" 특성을 사용하면 이 항목이 제출 서명 패키지에 포함되지 않도록 할 수 있습니다. 디스플레이 이름과 로고를 재정의하면 셸에서 이 exe에 대한 고유한 값을 가질 수 있습니다. (위 "ShellVisuals" 노드에서 지정한 리소스가 여기서 재정의되지 않으면 각 exe의 기본값이 사용됩니다.) |
실행파일 | 필수 | 특정 실행 파일의 세부 정보를 지정합니다. | ExecutableList | 이 섹션 특성에는 실행 파일의 이름(Name), 빌드된 장치(TargetDeviceFamily), 애플리케이션 ID(Id), 개발용 실행 파일인지 여부(IsDevOnly), ShellVisuals 노드로부터의 디스플레이 이름을 재정의해야 하는지 여부(OverrideDisplayName), ShellVisuals 노드로부터의 Logo를 재정의해야 하는지 여부(OverrideLogo), ShellVisuals 노드로부터의 Square480x480Logo를 재정의해야 하는지 여부(OverrideSquare480x480Logo), ShellVisuals 노드로부터의 Square44x44Logo를 재정의해야 하는지 여부(OverrideSquare44x44Logo), ShellVisuals 노드로부터의 SplashScreenImage를 재정의해야 하는지 여부(OverrideSplashScreenImage), 실행 파일에 별칭이 있는지 여부(Alias, 현재 데스크톱에만 해당)가 포함됩니다. |
AdvancedUserModel | 선택 사항 | 고급 사용자 모델을 타이틀에 사용해야 하는지 여부를 지정합니다. | 게임 | 즉, 타이틀은 다시 시작하지 않고도 활성 사용자 변경을 지원합니다. 비활성화된 경우 타이틀이 시작된 활성 사용자를 항상 유지하도록 보장하는 단순 사용자 모델이 사용됩니다. GDK 사용자 모델(NDA 항목)권한 부여 필요에서 자세한 내용을 참조하세요. |
프로토콜 | 선택 | 게임을 시작하거나 이미 실행 중인 경우 게임을 포그라운드로 가져오는 데 사용할 수 있는 사용자 지정 프로토콜입니다. | ProtocolList | 사용자 지정 프로토콜의 이름과 실행 파일의 경로(선택 사항)를 모두 지정합니다. 자세한 내용은 프로토콜 활성화를 참조하세요. |
ProtocolList | 선택 | 게임을 시작하거나 게임을 이미 실행 중인 경우 포그라운드로 가져오는 데 사용할 수 있는 사용자 지정 프로토콜 컬렉션을 지정합니다. | 게임 | 프로토콜을 하나 이상 제공해야 합니다. 자세한 내용은 프로토콜 활성화를 참조하세요. |
GameOsVersion | 선택(본체에만 해당) | 이 타이틀을 실행하는 데 필요한 Microsoft GDK(게임 개발 키트) gameOS 버전을 지정합니다. | 게임 | 지정하지 않으면 현재 실행 중인 GameOS나 기본 GameOS를 사용합니다. |
WindowsOsVersion | 선택 사항(PC만 해당) | 이 타이틀을 실행하기 위해 필요한 최소 및 제안된 Windows(tm) 버전을 지정합니다. | 게임 | 허용되는 값은 4부 버전 번호(예: 10.0.19045.3570)이고 옵션은 RequiredMinimum="#.#.#.#", SuggestedMinimum="#.#.#.#"Recommended="#.#.#.#"입니다. 이 제안된 최소 요소는 기본적으로 10.0.19045.3570으로 설정됩니다. |
MediaCapture | 선택(본체에만 해당) | 이 타이틀이 실행되는 동안 시스템 미디어 캡처 앱에 대한 원하는 동작을 지정합니다. | 게임 | 미디어 캡처가 제대로 작동하도록 제목 ID를 구성해야 합니다. |
GameDVRSystemComponent | 선택(본체에만 해당) | 게임 DVR 시스템 구성 요소를 사용할 수 있는지 여부를 지정합니다. | MediaCapture | |
BlockBroadcast | 선택(본체에만 해당) | 타이틀 브로드캐스트를 차단 또는 허용할지 여부를 지정합니다. | MediaCapture | |
BlockGameDVR | 선택(본체에만 해당) | 타이틀의 게임 DVR 녹화를 차단 또는 허용할지 여부를 지정합니다. | MediaCapture | |
StoreId | 선택 | 이 타이틀의 Microsoft Store ID를 지정합니다. | 게임 | 파트너 센터의 제품 관리 -> 제품 ID에서 지정됩니다. |
AllowedProducts | 선택 | 이 DLC(다운로드 가능한 콘텐츠) 패키지 타이틀이 속하는 관련 타이틀의 StoreId를 지정합니다. | Game | 자세한 내용은 DLC(다운로드 가능한 콘텐츠) 패키지를 참조하세요. |
AllowedProduct | 선택 사항 | 이 DLC(다운로드 가능한 콘텐츠) 패키지 타이틀이 속하는 관련 타이틀의 StoreId를 지정합니다. | AllowedProducts | |
RelatedProducts | 선택 사항 | 이 DLC 타이틀이 관련된 제품의 StoreId를 지정합니다. | Game | 자세한 내용은 DLC(다운로드 가능한 콘텐츠) 패키지를 참조하세요. |
RelatedProduct | 선택 사항 | 이 DLC 타이틀이 관련된 제품의 StoreId의 특정 항목입니다. | RelatedProducts | |
TargetDeviceFamilyForDLC | 선택 사항(DLC에만 해당) | DLC 패키지가 빌드되는 대상 플랫폼을 지정합니다. 허용 값은 XboxOne, Scarlett 및 PC입니다. | 게임 | |
PersistentLocalStorage | 선택(본체에만 해당) | 타이틀의 영구 로컬 저장소에 원하는 크기를 지정합니다. | Game | 영구 로컬 스토리지를 사용하려면 타이틀 ID가 올바르게 작동하도록 구성해야 합니다. |
SizeMB | 선택(본체에만 해당) | 영구 로컬 저장소의 최소 크기(MB)를 지정합니다. | PersistentLocalStorage | 영구 로컬 스토리지를 사용하려면 타이틀 ID가 올바르게 작동하도록 구성해야 합니다. |
GrowableToMB | 선택(본체에만 해당) | 시간이 지남에 따라 영구 로컬 저장소가 증가할 수 있는 최대 크기(MB)를 지정합니다. | PersistentLocalStorage | 영구 로컬 스토리지를 사용하려면 타이틀 ID가 올바르게 작동하도록 구성해야 합니다. |
VirtualMachine | 선택(본체에만 해당) | 특정 Xbox One 하드웨어의 타이틀 메모리 할당을 지정합니다. | 게임 | |
XboxOneXTitleMemory | 선택(본체에만 해당) | Xbox One X 본체의 타이틀 메모리 설정을 지정합니다. | 가상 머신 | 허용되는 값은 "Standard" 또는 "Advanced"입니다. |
XboxLockhartTitleMemory | 선택(본체에만 해당) | Xbox Series S 콘솔의 타이틀 메모리 설정을 지정합니다. | 가상 머신 | 허용되는 값은 "Standard" 또는 "Advanced"입니다. |
XboxAnacondaTitleMemory | 선택(본체에만 해당) | Xbox Series X 콘솔의 타이틀 메모리 설정을 지정합니다. | 가상 머신 | 허용되는 값은 "Standard" 또는 "Advanced"입니다. |
SMTEnabled | 선택(본체에만 해당) | SMT 사용 여부를 지정합니다. | 가상 머신 | |
RequiresEraShim | 선택(본체에만 해당) | XBOX ONE ERA Shim이 필요한지 여부를 지정합니다. | 가상 머신 | |
XboxCompatibility | 선택(본체에만 해당) | 게임이 호환할 수 있는 최대 콘솔 세대를 지정합니다. | 가상 머신 | 개발자는 Xbox Series X|S에서 이전 버전과의 호환성으로 실행되는 Xbox One 타이틀과 함께 이를 사용합니다. 주요 용도는 추가 메모리와 같은 고급 기능에 액세스하는 것입니다. 허용되는 값은 일반적인 이전 버전과 호환되는 타이틀처럼 동작하는 "XboxOne" 및 이전 버전과 호환되는 타이틀이 고급 기능에 액세스할 수 있게 해주는 "Scarlett"입니다. |
DlcCompatibility | 선택(본체에만 해당) | 게임이 호환되는 DLC의 최소 콘솔 생성을 지정합니다. | 가상 머신 | 개발자는 Xbox Series X|S 콘솔에서 실행되지만 Xbox One용으로 빌드된 DLC 패키지를 로드하기 위해 이를 Xbox One 타이틀과 함께 사용합니다. 이렇게 하면 DLC가 빠른 저장소뿐만 아니라 모든 저장소에 존재할 수 있습니다. |
MSAFullTrust | 선택 사항(PC 데스크톱에만 해당) | 타이틀이 "MSA 완전 신뢰"로 선언되는지 여부를 지정합니다. | Game | 계정 관리자가 달리 언급하지 않는 한 사용하지 않는 것이 좋습니다. |
MSAAppId | 필수 | Xbox Live 서비스를 식별하기 위해 Xbox Live 타이틀 ID(다음과 같음)와 함께 사용되는 타이틀 MSA 앱 ID를 지정합니다. | 게임 | 2022년 3월 Microsoft GDK(게임 개발 키트)에서 TitleId 요소가 지정된 경우 MSAAppId 요소가 있어야 합니다. |
TitleId | 선택 | Xbox Live 서비스를 식별하기 위해 사용되는 Xbox Live 타이틀 ID를 지정합니다. | 게임 | 2022년 3월 Microsoft GDK(게임 개발 키트)에서 MSAAppId 요소가 지정된 경우 TitleId 요소가 있어야 합니다. |
RequiresXboxLive | 선택 사항 | 타이틀을 실행하기 위해 Xbox Live 연결이 필요한지 지정합니다. | 게임 | |
ExtendedAttributeList | 선택 | 기존 요소를 벗어난 추가 특성을 대체합니다. | Game | 계정 관리자가 달리 언급하지 않는 한 사용하지 않는 것이 좋습니다. |
ExtendedAttribute | 선택 | 확장 특성 목록에 있는 특정 대체 지정입니다. | Game | 계정 관리자가 달리 언급하지 않는 한 사용하지 않는 것이 좋습니다. |
DesktopRegistration | 선택 사항(PC 데스크톱에만 해당) | PC 데스크톱 플랫폼에서 타이틀을 등록할 때 사용할 특성을 지정합니다. | 게임 | |
ProcessorArchitecture | 선택(PC 데스크톱에만 해당) | 게임 실행 파일과 일치하는 프로세서 아키텍처를 지정합니다. | DesktopRegistration | 이 요소에 대한 특성 예시는 x64 및 x86입니다. |
MainPackageDependency | 선택(PC 데스크톱 DLC에만 해당) | DLC가 속한 기본 패키지의 ID를 지정합니다. | DesktopRegistration | |
DependencyList | 선택(PC 데스크톱에만 해당) | 타이틀 패키지 설치 전에 설치해야 할 프레임워크 패키지를 결정합니다. | DesktopRegistration | 하위 요소 사용에 대한 자세한 내용은 여기를 클릭하십시오. |
KnownDependency | 선택 사항(PC 데스크톱에만 해당) | 일반적으로 사용되는 프레임워크 패키지 중 하나를 지정하는 바로 가기입니다. | DependencyList | 이름의 특성 사양이 필요하고 MinVersion은 자동으로 설정됩니다. 가능한 바로 가기 목록은 다음 스키마에서 ST_KnownDependency 섹션을 참조하세요. |
종속성 | 선택 사항(PC 데스크톱에만 해당) | 타이틀에 앞서 설치해야 하는 특정 프레임워크 패키지 및 버전입니다. | DependencyList | Name 및 MinVersion의 특성 사양이 설정되어야 합니다. |
CustomInstallActions | 선택(PC 데스크톱에만 해당) | 게임을 처음 실행할 때 관리자 권한으로 사용자 지정 설치 관리자 작업을 지정합니다. | DesktopRegistration | 지정한 실행 파일이 게임의 기본 폴더에 있는 "Installers" 폴더에 있어야 합니다. Installers 폴더에 다른 파일을 포함하지 않습니다. |
폴더 | 선택 사항(PC 데스크톱에만 해당) | 설치 관리자의 폴더 위치를 지정합니다. | CustomInstallActions | |
InstallActionList | 선택 사항(PC 데스크톱에만 해당) | 실행 파일, 이름 및 인수를 포함한 설치 작업 목록을 지정합니다. | CustomInstallActions | |
InstallAction | 선택 사항(PC 데스크톱에만 해당) | 설치 작업 목록 내에 설치 작업을 지정합니다. | InstallActionList | 최대 100개의 항목. |
RepairActionList | 선택 사항(PC 데스크톱에만 해당) | 복구 작업 목록을 지정합니다. | CustomInstallActions | |
RepairAction | 선택 사항(PC 데스크톱에만 해당) | 복구 작업 목록 내에서 복구 작업을 지정합니다. | RepairActionList | 최대 100개의 항목. |
UninstallActionList | 선택 사항(PC 데스크톱에만 해당) | 설치 제거 작업 목록을 지정합니다. | CustomInstallActions | |
UninstallAction | 선택 사항(PC 데스크톱에만 해당) | 설치 제거 작업 목록 내에 설치 제거 작업을 지정합니다. | UninstallActionList | 최대 100개의 항목. |
ModFolder | 선택 사항(PC 데스크톱에만 해당) | 게임 파일에 대한 최종 사용자 모드의 위치를 정의합니다. | DesktopRegistration | 이 요소는 2022년 3월 Microsoft GDK(게임 개발 키트)부터 더 이상 사용되지 않습니다. |
DisableRegistryWriteVirtualization | 선택 사항(PC 데스크톱에만 해당) | 게임에서 운영 체제 레지스트리 쓰기를 해야 하는 경우 true로 설정합니다. | DesktopRegistration | 이 요소는 2022년 3월 Microsoft GDK(게임 개발 키트)부터 더 이상 사용되지 않습니다. |
DisableFilesystemWriteVirtualization | 선택(PC 데스크톱에만 해당) | 게임에서 운영 체제 파일 쓰기를 해야 하는 경우 true로 설정합니다. | DesktopRegistration | 이 요소는 2022년 3월 Microsoft GDK(게임 개발 키트)부터 더 이상 사용되지 않습니다. |
EnableWritesToPackageRoot | 선택 사항(PC 데스크톱에만 해당) | 게임에서 패키지 설치 위치에 써야 하는 경우 true로 설정합니다. | DesktopRegistration | 이 요소는 2022년 3월 Microsoft GDK(게임 개발 키트)부터 더 이상 사용되지 않습니다. |
MultiplayerProtocol | 선택(PC 데스크톱에만 해당) | "ms-xbl-multiplayer" 프로토콜을 통해 타이틀 내에서 프로토콜 활성화를 허용합니다. | DesktopRegistration | Game Bar를 활성화하여 게임/멀티플레이어 게임 초대를 시작하는 데 주로 사용됩니다. |
FileTypeAssociation | 선택(PC 데스크톱에만 해당) | 파일 형식과 패키지 내 실행 파일의 연결을 허용합니다. | DesktopRegistration | 타이틀의 맵 편집기에 대한 특정 확장을 예로 들 수 있습니다. |
DisplayName | 선택 사항(PC 데스크톱에만 해당) | 파일 형식 연결에 대한 표시 이름을 지정합니다. | FileTypeAssociation | |
로고 | 선택 사항(PC 데스크톱에만 해당) | 파일 형식 연결에 대한 로고를 지정합니다. | FileTypeAssociation | |
InfoTip | 선택 사항(PC 데스크톱에만 해당) | 파일 형식 연결에 대한 정보 팁을 지정합니다. | FileTypeAssociation | |
EditFlags | 선택 사항(PC 데스크톱에만 해당) | 파일 형식 연결에 대한 편집 플래그를 지정합니다. | FileTypeAssociation | |
SupportedFileTypes | 선택(PC 데스크톱에만 해당) | 파일 형식 연결에 대해 지원되는 파일 형식을 지정합니다. | FileTypeAssociation | |
FileType | 선택(PC 데스크톱에만 해당) | SupportedFileTypes 요소의 일부로 사용할 파일 형식 확장자를 지정합니다. | SupportedFileTypes | |
NoCodePCRoot | 선택 사항(PC 데스크톱에만 해당) | 패키지에 대해 코드 클라우드 저장을 사용하도록 설정하지 않은 경우 저장 게임이 사용할 수 있도록 저장되는 로컬 폴더를 지정합니다. | SaveGameStorage | |
DevelopmentOnly | 선택(본체에만 해당) | 개발 전용 속성 목록입니다. | 게임 | |
ContentIdOverride | 선택(본체에만 해당) | 개발 전용으로 게임 ContentID에 대한 재정의입니다. | DevelopmentOnly | 패키지가 설치된 상태에서 xbapp list /d /nosystem 명령을 사용하여 타이틀 ContentID를 가져옵니다. |
EKBIDOverride | 선택(본체에만 해당) | 개발 전용으로 게임 EKBID(평가판 버전 ID)에 대한 재정의입니다. | DevelopmentOnly | 패키지가 설치된 상태에서 xbapp list /d 명령을 사용하여 타이틀 EKBID를 가져옵니다. |
DebugNetworkPortList | 선택(본체에만 해당) | 개발 키트에서 개발을 위해 개방하는 추가 포트의 목록입니다. | DevelopmentOnly | |
DebugNetworkPort | 선택(본체에만 해당) | 개발 키트에서 개발을 위해 개방하는 추가 포트입니다. | DebugNetworkPortList |
샘플 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 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_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: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는 Xbox One ERA AppxManifest.xml에서 SCID 호출 정의에 사용되었던 요소입니다. 이제는 코드로 정의되고 DevCenter에서 구성됩니다.
- VisualElements는 Xbox One ERA AppxManifest.xml에서 Microsoft Store 로고 빛 타이틀의 기타 시각적 요소의 정의에 사용되었던 요소입니다. 이제는 ShellVisuals에서 정의됩니다.
- GpuAvailability는 Xbox One ERA AppxManifest.xml에서 GPU 가용성 정의에 사용되었던 요소입니다. 이제는 모든 Microsoft GDK(게임 개발 키트) 타이틀에서 자동으로 가변 설정(가능한 높은 GPU)을 가져오므로 이는 자동으로 이루어집니다.
- ConnectedStorageQuota는 Xbox One ERA AppxManifest.xml에서 연결된 저장소 크기 정의에 사용되었던 요소입니다. 이제는 서버 측 설정으로 결정됩니다.
- LicenseOverrides는 Xbox One ERA debug_licensing_overrides.xml에서 ContentID, ProductID 및 EKBID에 대한 재정의를 정의하는 데 사용되었던 요소입니다. 이제 MicrosoftGame.config에서 ContentIDOverride, StoreId 및 EKBIDOverride 요소를 통해 직접 관리됩니다.
- NetworkManifest는 MicrosoftGame.config의 이전 버전에서 정의되었던 요소입니다. 이제는 기존 네트워킹 API에서 DebugNetworkPortList 요소의 예외를 통해 이루어집니다.
- 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 GDK(게임 개발 키트)에서는 MicrosoftGame.config 요소를 통해 제한된 기능이 구성됩니다. 일반적으로 사용되는 기능의 매핑은 다음과 같습니다.
- runFullTrust 기능은 기본적으로 사용하도록 구성되어 있습니다.
- customInstallActions 기능은 CustomInstallActions 요소를 통해 구성됩니다.
제한된 기능의 경우 계정 관리자에게 이메일을 보내 해당 기능에 대한 사용 권한을 부여하도록 요청해야 합니다(MicrosoftGame.config를 올바르게 업데이트하는 이외에 이 과정도 필요함). 이러한 기능에 대한 자세한 정보와 PC 게임에서 사용하도록 MicrosoftGame.config를 구성하는 방법은 PC용 타이틀 패키징 시작하기를 참조하세요.
DLC 패키지 만들기의 일부로서 MicrosoftGame.config
DLC 패키지에 대한 MicrosoftGame.config를 생성하는 방법에 대한 자세한 내용은 다운로드 가능한 콘텐츠(DLC) 패키지를 참조하십시오.
참고 항목
MicrosoftGame.config 요소 참조
MicrosoftGame.Config
MicrosoftGame.Config 개요
MicrosoftGame.Config 지역화
패키징 개요
PC 부트스트래퍼