Microsoft 게임 개발 키트를 설치하지 않고 프로젝트 구성
이 항목에서는 압축 해제된 Microsoft GDK(게임 개발 키트) 파일을 참조하면서 MSBuild를 사용하여 빌드할 프로젝트를 구성하는 방법에 관해 설명합니다. MSBuild와 CMake를 사용하는 예제 프로젝트를 다운로드하려면 프로젝트 구성 샘플 섹션을 참조하세요.
섹션 | 적용 대상 |
---|---|
플랫폼 속성 및 대상 파일 | GDK의 일부인 속성과 대상 파일의 형식 및 위치 |
MSBuild 속성 재정의 | 플랫 배포된 GDK를 사용하도록 속성을 재정의하는 방법 |
Gaming.Xbox.XboxOne.x64 and Gaming.Xbox.Scarlett.x64 project customization | 플랫 배포된 GDK를 사용하도록 Xbox 프로젝트를 구성하는 단계 |
GDK용 Gaming.Xbox.XboxOne.x64 및 Gaming.Xbox.Scarlett.x64 속성 재정의 | 플랫 배포된 GDK를 사용하기 위한 Xbox 속성 재정의 |
Windows 10 SDK용 Gaming.Xbox.XboxOne.x64 및 Gaming.Xbox.Scarlett.x64 속성 재정의 | 플랫 배포된 Windows 10 SDK를 사용하기 위한 Xbox 속성 재정의 |
Gaming.Xbox.XboxOne.x64 library 및 include 참조 | Xbox One 프로젝트에 대한 라이브러리 및 포함 참조 경로 |
Gaming.Xbox.Scarlett.x64 library 및 Include 참조 | Xbox Series X|S 프로젝트에 대한 라이브러리 및 포함 참조 경로 |
Gaming.Xbox.XboxOne.x64 및 Gaming.Xbox.Scarlett.x64 확장 라이브러리 | 확장 라이브러리(즉, Xbox.Game.Chat)에 대한 Xbox 속성 파일 |
Gaming.Desktop.x64 프로젝트 사용자 지정 | 플랫 배포된 GDK를 사용하도록 PC 데스크톱 프로젝트를 구성하는 단계 |
GDK용 Gaming.Desktop.x64 속성 재정의 | 플랫 배포된 GDK를 사용하기 위한 PC 데스크톱 속성 재정의 |
Windows 10 SDK용 Gaming.Desktop.x64 속성 재정의 | 플랫 배포된 Windows 10 SDK를 사용하기 위한 PC 데스크톱 속성 재정의 |
Gaming.Desktop.x64 library 및 include 참조 | PC 데스크톱 프로젝트에 대한 library 및 include 참조 경로 |
Gaming.Desktop.x64 확장 라이브러리 | 확장 라이브러리(즉, Xbox.Game.Chat)에 대한 PC 데스크톱 속성 파일 |
PC 측 도구에 대한 속성 구성 | PC 측 도구를 제대로 사용하기 위한 속성 재정의 |
Visual Studio 버전 관련 재정의 | Visual Studio 버전에 필요한 속성 재정의 |
Visual Studio 2019 플랫폼 재정의 | Visual Studio 2019에서 Platform 폴더 위치의 속성 재정의 |
Visual Studio 2022 플랫폼 재정의 | Visual Studio 2022에서 Platform 폴더 위치의 속성 재정의 |
프로젝트 구성 샘플 | 플랫 배포된 GDK를 시작하고 실행하기 위한 샘플 |
CMake 샘플 | 프로젝트를 플랫 배포된 GDK에 통합하기 위한 CMake 샘플 |
MSBuild 샘플 | 프로젝트를 플랫 배포된 GDK에 통합하기 위한 MSBuild 샘플 |
플랫폼 속성 및 대상 파일
압축 해제된 GDK 파일에는 Gaming.Xbox.XboxOne.x64, Gaming.Xbox.Scarlett.x64 또는 Gaming.Desktop.x64 플랫폼 빌드의 일부로 사용되는 속성 및 대상 파일 집합이 포함되어 있습니다. 이러한 플랫폼은 정의된 플랫폼으로 빌드할 때 Microsoft.Cpp.Default.props 조회에서 가져옵니다. 이러한 파일을 검사하면 플랫폼 MSBuild 구성 요소의 작동 방식과 빌드 시스템에 최상의 통합 방법을 이해하는 데 도움이 됩니다.
Visual Studio 버전, 플랫폼 도구 집합 버전 및 플랫폼 대상을 기반으로 이러한 파일의 16 인스턴스가 있습니다. 압축 해제된 GDK 폴더의 예제 경로는 다음과 같습니다.
- C:\ExtractedGDK\241000\Microsoft GDK\241000\GXDK\VS2019\flatDeployment\MSBuild\Microsoft\VC\v160\Platforms\Gaming.Xbox.XboxOne.x64
- C:\ExtractedGDK\241000\Microsoft GDK\241000\GXDK\VS2019\flatDeployment\MSBuild\Microsoft\VC\v160\Platforms\Gaming.Xbox.Scarlett.x64
- C:\ExtractedGDK\241000\Microsoft GDK\241000\GXDK\VS2022\flatDeployment\MSBuild\Microsoft\VC\v160\Platforms\Gaming.Xbox.XboxOne.x64
- C:\ExtractedGDK\241000\Microsoft GDK\241000\GXDK\VS2022\flatDeployment\MSBuild\Microsoft\VC\v160\Platforms\Gaming.Xbox.Scarlett.x64
- C:\ExtractedGDK\241000\Microsoft GDK\241000\GXDK\VS2022\flatDeployment\MSBuild\Microsoft\VC\v170\Platforms\Gaming.Xbox.XboxOne.x64
- C:\ExtractedGDK\241000\Microsoft GDK\241000\GXDK\VS2022\flatDeployment\MSBuild\Microsoft\VC\v170\Platforms\Gaming.Xbox.Scarlett.x64
- C:\ExtractedGDK\241000\Microsoft GDK\241000\GRDK\VS2019\flatDeployment\MSBuild\Microsoft\VC\v160\Platforms\gaming.desktop.x64
- C:\ExtractedGDK\241000\Microsoft GDK\241000\GRDK\VS2022\flatDeployment\MSBuild\Microsoft\VC\v160\Platforms\gaming.desktop.x64
- C:\ExtractedGDK\241000\Microsoft GDK\241000\GRDK\VS2022\flatDeployment\MSBuild\Microsoft\VC\v170\Platforms\gaming.desktop.x64
Visual Studio 2019 및 Visual Studio 2022용 v160 폴더와 v170 폴더의 차이점은 v142(v160) 또는 v143(v170) 플랫폼 도구 집합 버전($(PlatformToolset) 속성에 정의됨)을 사용하는 것입니다.
MSBuild 속성 재정의
프로젝트에서 MSBuild 속성을 재정의하는 방법에는 여러 가지가 있습니다. 한 가지 편리한 방법은 프로젝트 파일과 동일한 디렉터리에 Directory.Build.props 파일을 만드는 것입니다. 이 파일에 정의된 속성은 프로젝트를 빌드할 때 자동으로 적용됩니다. 파일이 없으면 재정의가 적용되지 않습니다. 즉, Microsoft GDK(게임 개발 키트)가 설치되어 있는지 여부에 관계없이 동일한 프로젝트 파일을 사용할 수 있습니다. Microsoft GDK(게임 개발 키트)가 설치된 경우 일반적인 빌드 프로세스를 사용하도록 Directory.Build.props를 제거하거나 이름을 바꿉니다.
MSBuild 샘플에서는 Directory.Build.props 파일을 사용하는 방법을 보여 줍니다.
다음 섹션에서는 압축 해제된 Microsoft GDK(게임 개발 키트)를 가리키도록 재정의할 권장 속성과 lib 및 include 경로에 대한 세부 내용을 찾을 수 있는 위치에 대해 설명합니다.
Gaming.Xbox.XboxOne.x64 and Gaming.Xbox.Scarlett.x64 project customization
압축 해제된 GDK에서 MSBuild를 사용하여 Gaming.Xbox.XboxOne.x64 및 Gaming.Xbox.Scarlett.x64 프로젝트를 빌드하려면 프로젝트 사용자 지정이 필요합니다. 재정의를 필요로 하는 속성의 경우 Gaming.Xbox.XboxOne.x64와 Gaming.Xbox.Scarlett.x64의 가장 중요한 차이점은 Platform
속성 정의입니다.
GDK용 Gaming.Xbox.XboxOne.x64 및 Gaming.Xbox.Scarlett.x64 속성 재정의
Gaming.Xbox.XboxOne.x64 및 Gaming.Xbox.Scarlett.x64 플랫폼용으로 구성된 프로젝트를 성공적으로 빌드하려면 다음 속성을 설정해야 합니다. 이들은 프로젝트 파일 내에 정의된 Microsoft.Cpp.Default.props를 가져오기 전에 먼저 가져와야 합니다.
재정의 속성에 대한 설명
-
BWOI_GDK_Path:
필수 속성이 아니지만 하드 코딩된 경로를 줄이기 위해 향후 속성 값에서 사용하도록 설정하는 것이 좋은 사용자 속성. -
Platform
:프로젝트 컴파일에 사용되는 플랫폼을 지정합니다. GDK의 Xbox 본체 제품군 옵션은 Gaming.Xbox.XboxOne.x64 및 Gaming.Xbox.Scarlett.x64입니다. 이 속성은 새 프로젝트 템플릿의 일부로 설정됩니다. -
XdkEditionTarget
: 빌드 컴파일에 사용되는 GDK 버전을 재정의합니다. Platform.default.props에 정의되며 xdk.props에 설정된 내부 속성인XdkEdition
에서 파생됩니다. -
DurangoXdkInstallPath
: 추출된 GDK의 Microsoft GDK(게임 개발 키트) 폴더 위치를 재정의합니다. Platform.Edition.default.props에 정의됩니다. -
DefaultXdkEditionRootVS2019
: Visual Studio 2019 호환Platform
속성 및 대상 파일의 기본 위치를 재정의합니다. Platform.default.props에 정의됩니다. 이 속성은 Visual Studio 2019를 통해 프로젝트를 사용하는 경우에만 정의해야 합니다. -
XdkEditionRootVS2019
: Visual Studio 2019 호환Platform
속성 및 대상 파일의 위치를 재정의합니다. Platform.props에 정의됩니다. 이 속성은 Visual Studio 2019를 통해 프로젝트를 사용하는 경우에만 정의해야 합니다. -
DefaultXdkEditionRootVS2022
: Visual Studio 2022 호환Platform
속성 및 대상 파일의 기본 위치를 재정의합니다. Platform.default.props에 정의됩니다. 이 속성은 Visual Studio 2022에서 프로젝트를 사용할 때만 정의해야 합니다. -
XdkEditionRootVS2022
: Visual Studio 2022 호환Platform
속성 및 대상 파일의 위치를 재정의합니다. Platform.props에 정의됩니다. 이 속성은 Visual Studio 2022에서 프로젝트를 사용할 때만 정의해야 합니다. -
PlatformToolset
: 빌드하는 데 사용할 빌드 도구의 특정 버전을 재정의합니다. v142는 Visual Studio 2019에서 지원됩니다. v142 및 v143은 Visual Studio 2022에서 지원됩니다(v143은 기본적으로 정의됨). Microsoft.Cpp.Defaults.props에 정의됩니다.
이전에 압축 해제된 폴더의 예를 기반으로 한 Gaming.Xbox.Scarlett.x64 속성 값 예:
<BWOI_GDK_Path>C:\ExtractedGDK\241000\</BWOI_GDK_Path>
<Platform>Gaming.Xbox.Scarlett.x64</Platform>
<XdkEditionTarget>241000</XdkEditionTarget>
<DurangoXdkInstallPath>$(BWOI_GDK_Path)Microsoft GDK\</DurangoXdkInstallPath>
<DefaultXdkEditionRootVS2019>$(XdkEditionTarget)\GXDK\VS2019\flatDeployment\MSBuild\Microsoft\VC\v160\Platforms\$(Platform)\</DefaultXdkEditionRootVS2019>
<XdkEditionRootVS2019>$(DurangoXdkInstallPath)$(XdkEditionTarget)\GXDK\VS2019\flatDeployment\MSBuild\Microsoft\VC\v160\Platforms\$(Platform)\</XdkEditionRootVS2019>
<DefaultXdkEditionRootVS2022>$(XdkEditionTarget)\GXDK\VS2022\flatDeployment\MSBuild\Microsoft\VC\v170\Platforms\$(Platform)\</DefaultXdkEditionRootVS2022>
<XdkEditionRootVS2022>$(DurangoXdkInstallPath)$(XdkEditionTarget)\GXDK\VS2022\flatDeployment\MSBuild\Microsoft\VC\v170\Platforms\$(Platform)\</XdkEditionRootVS2022>
<PlatformToolset>$(PlatformToolset)</PlatformToolset>
Platform 폴더를 재정의하여 Gaming.Xbox.XboxOne.x64 및 Gaming.Xbox.Scarlett.x64에 따른 특정 .props와 대상을 감지하려면 Visual Studio 플랫폼 재정의에서 다음 섹션을 참조하십시오.
Windows 10 SDK용 Gaming.Xbox.XboxOne.x64 및 Gaming.Xbox.Scarlett.x64 속성 재정의
다음 속성은 압축 해제된 Windows 10 SDK를 사용하는 경우에만 설정해야 합니다. 설치된 Windows 10 SDK를 사용하는 경우 이 섹션을 건너뛸 수 있습니다.
-
BWOI_Win10SDK_Path
: 필수 속성이 아니지만 하드 코딩된 경로를 줄이기 위해 향후 속성 값에서 사용하도록 설정하는 것이 좋은 사용자 속성. -
WindowsSdkDir
: Windows 10 SDK의 위치를 재정의합니다. -
WindowsSdkDir_10:
Windows 10 SDK(Windows 10)의 위치를 재정의합니다. 빌드 컴파일 중에 가져온 Microsoft.Cpp.WindowsSDK.props의 레지스트리 키를 통해 확인됩니다. -
UCRTContentRoot
: Universal C Runtime Library Content Root의 위치를 재정의합니다. uCRT.props에 규정됩니다. -
UniversalCRTSdkDir
: Universal C Runtime Library SDK(Visual C++ C Runtime)의 위치를 재정의합니다. 이 속성은 빌드 컴파일 중에 가져온 Microsoft.Cpp.WindowsSDK.props의 레지스트리 키를 통해 확인됩니다. -
UniversalCRTSdkDir_10
: Universal C Runtime Library SDK(Windows 10용 Visual C++ C Runtime)의 위치를 재정의합니다. 이 속성은 빌드 컴파일 중에 가져온 Microsoft.Cpp.WindowsSDK.props의 레지스트리 키를 통해 확인됩니다. -
WindowsSDK_ExecutablePath_x86
: Windows 10 SDK에 포함된 x86 도구의 위치를 재정의합니다. 이 위치에는rc.exe
reside와 같은 도구가 있습니다. 이 속성은 Microsoft.Cpp.WindowsSDK.props에 정의됩니다. -
WindowsSDK_ExecutablePath_x64
: Windows 10 SDK에 포함된 x64 도구의 위치를 재정의합니다. 이 위치에는rc.exe
reside와 같은 도구가 있습니다. 이 속성은 Microsoft.Cpp.WindowsSDK.props에 정의됩니다. -
WindowsTargetPlatformVersion
: 사용 중인 Windows 10 SDK의 버전을 재정의합니다. 이 속성은 Platform.Edition.default.props 파일에 정의됩니다(정의되지 않은 경우 로컬 경로를 따름). -
TargetPlatformVersion
: 사용 중인 Windows 10 SDK의 버전을 재정의합니다. 이 속성은 Microsoft.Cpp.WindowsSDK.props에 정의됩니다.
이전의 압축 해제된 폴더의 예를 기반으로 한 속성 값 예:
<BWOI_Win10SDK_Path>C:\ExtractedWin10SDK\</BWOI_Win10SDK_Path>
<WindowsSdkDir>$(BWOI_Win10SDK_Path)Windows Kits\10\</WindowsSdkDir>
<WindowsSdkDir_10>$(WindowsSdkDir)</WindowsSdkDir_10>
<UCRTContentRoot>$(WindowsSdkDir)</UCRTContentRoot>
<UniversalCRTSdkDir>$(WindowsSdkDir)</UniversalCRTSdkDir>
<UniversalCRTSdkDir_10>$(WindowsSdkDir)</UniversalCRTSdkDir_10>
<WindowsSDK_ExecutablePath_x86>$(WindowsSdkDir)bin\$(WindowsTargetPlatformVersion)\x86</WindowsSDK_ExecutablePath_x86>
<WindowsSDK_ExecutablePath_x64>$(WindowsSdkDir)bin\$(WindowsTargetPlatformVersion)\x64</WindowsSDK_ExecutablePath_x64>
<WindowsTargetPlatformVersion>10.0.19041.0</WindowsTargetPlatformVersion>
<TargetPlatformVersion>$(WindowsTargetPlatformVersion)</TargetPlatformVersion>
Microsoft GDK에는 Windows 10 SDK(19041) 이상이 필요합니다. 원하는 경우 Windows SDK(20348, 22000 또는 22621)를 사용할 수 있지만 필수는 아닙니다.
2023년 10월 릴리스를 기준으로 Windows 11 SDK(22000) 이상이 필요합니다. 원하는 경우 Windows 11 SDK 버전 22H2(22621)를 사용할 수 있지만 필수는 아닙니다. "10.0.19041.0"의 모든 인스턴스를 "10.0.22000.0"으로 대체합니다.
Gaming.Xbox.XboxOne.x64 library 및 include 참조
라이브러리 및 포함 참조는 앞에서 언급한 재정의된 경로에서 파생되므로 직접 재정의할 필요가 없습니다. 이 섹션은 참조 전용입니다.
이러한 참조는 Gaming.Xbox.XboxOne.x64 플랫폼 폴더 내의 Platform.Edition.props에 정의되어 있습니다. 속성은 다음과 같이 생성됩니다.
<Console_LibRoot>$(WindowsSDKDir)Lib\$(TargetPlatformVersion)\</Console_LibRoot>
<Console_EndpointLibRoot>$(DurangoXdkInstallPath)GXDK\gameKit\Lib\amd64;$(DurangoXdkInstallPath)GXDK\gameKit\Lib\amd64\XboxOne;$(DurangoXdkInstallPath)GRDK\gameKit\Lib\amd64</Console_EndpointLibRoot>
<Console_EndpointIncludeRoot>$(DurangoXdkInstallPath)GXDK\gameKit\Include\;$(DurangoXdkInstallPath)GXDK\gameKit\Include\XboxOne\;$(DurangoXdkInstallPath)GRDK\gameKit\Include\</Console_EndpointIncludeRoot>
<Console_WindowsIncludeRoot>$(WindowsSDKDir)Include\$(TargetPlatformVersion)\</Console_WindowsIncludeRoot>
<Console_Libs Condition="'$(Console_Libs)'==''">pixevt.lib;d3d12_x.lib;xgameplatform.lib;xgameruntime.lib;xmem.lib;xg_x.lib</Console_Libs>
<Console_UCRTRedistDebug>$(WindowsSDKDir)bin\$(TargetPlatformVersion)\x64\ucrt\</Console_UCRTRedistDebug>
<Console_SdkRoot>$(DurangoXdkInstallRoot)</Console_SdkRoot>
<Console_SdkIncludeRoot>$(Console_EndpointIncludeRoot);$(WindowsSDK_IncludePath);$(UniversalCRT_IncludePath);$(VC_VC_IncludePath);</Console_SdkIncludeRoot>
<Console_SdkLibPath>$(Console_EndpointLibRoot);$(WindowsSDK_LibraryPath_x64);$(UniversalCRT_LibraryPath_x64);$(VC_LibraryPath_VC_x64_OneCore)</Console_SdkLibPath>
MSBuild 로그의 라이브러리 및 Include 속성의 정의 예:
Console_EndpointIncludeRoot = C:\ExtractedGDK\241000\Microsoft GDK\241000\GXDK\gameKit\Include\;C:\ExtractedGDK\241000\Microsoft GDK\241000\GXDK\gameKit\Include\XboxOne\;C:\ExtractedGDK\241000\Microsoft GDK\241000\GRDK\gameKit\Include\
Console_EndpointLibRoot = C:\ExtractedGDK\241000\Microsoft GDK\241000\GXDK\gameKit\Lib\amd64;C:\ExtractedGDK\241000\Microsoft GDK\241000\GXDK\gameKit\Lib\amd64\XboxOne;C:\ExtractedGDK\241000\Microsoft GDK\241000\GRDK\gameKit\Lib\amd64
Console_ExtLibPaths = C:\ExtractedGDK\241000\Microsoft GDK\241000\GRDK\ExtensionLibraries\Xbox.Services.API.C\ExtensionLibrary.props
Console_ExtLibPathsString = C:\ExtractedGDK\241000\Microsoft GDK\241000\GRDK\ExtensionLibraries\Xbox.Services.API.C\ExtensionLibrary.props
Console_GRDKExtLibNamesString = PlayFab.Party.Cpp|PlayFab.PartyXboxLive.Cpp|Xbox.Game.Chat.2.Cpp.API|Xbox.Services.API.C
Console_GRDKExtLibRoot = C:\ExtractedGDK\241000\Microsoft GDK\241000\GRDK\ExtensionLibraries\
Console_LibRoot = C:\Program Files (x86)\Windows Kits\10\Lib\10.0.19041.0\
Console_Libs = pixevt.lib;d3d12_x.lib;xgameplatform.lib;xgameruntime.lib;xmem.lib;xg_x.lib
Console_SdkIncludeRoot = C:\ExtractedGDK\241000\Microsoft GDK\241000\GRDK\ExtensionLibraries\Xbox.Services.API.C\Include;C:\ExtractedGDK\241000\Microsoft GDK\241000\GXDK\gameKit\Include\;C:\ExtractedGDK\241000\Microsoft GDK\241000\GXDK\gameKit\Include\XboxOne\;C:\ExtractedGDK\241000\Microsoft GDK\241000\GRDK\gameKit\Include\;C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um;C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared;C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\winrt;C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\cppwinrt;C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt;C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt;;C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.30.30705\include;;
Console_SdkLibPath = C:\ExtractedGDK\241000\Microsoft GDK\241000\GRDK\ExtensionLibraries\Xbox.Services.API.C\Lib\x64\Release\v143;C:\ExtractedGDK\241000\Microsoft GDK\241000\GXDK\gameKit\Lib\amd64;C:\ExtractedGDK\241000\Microsoft GDK\241000\GXDK\gameKit\Lib\amd64\XboxOne;C:\ExtractedGDK\241000\Microsoft GDK\241000\GRDK\gameKit\Lib\amd64;C:\Program Files (x86)\Windows Kits\10\Lib\10.0.19041.0\ucrt\x64;C:\Program Files (x86)\Windows Kits\10\Lib\10.0.19041.0\um\x64;C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\ucrt\x64;;C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.30.30705\lib\onecore\x64
Console_SdkRoot = C:\ExtractedGDK\241000\Microsoft GDK\
Console_SdkToolPath = C:\ExtractedGDK\241000\Microsoft GDK\241000\GXDK\bin\XboxOne\
Console_UCRTRedistDebug = C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x64\ucrt\
Console_WindowsIncludeRoot = C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\
Gaming.Xbox.Scarlett.x64 library 및 Include 참조
라이브러리 및 포함 참조는 앞에서 언급한 재정의된 경로에서 파생되므로 직접 재정의할 필요가 없습니다. 이 섹션은 참조 전용입니다.
이러한 참조는 Gaming.Xbox.Scarlett.x64 플랫폼 폴더 내의 Platform.Edition.props에 정의되어 있습니다. 속성은 다음과 같이 생성됩니다.
<Console_LibRoot>$(WindowsSDKDir)Lib\$(TargetPlatformVersion)\</Console_LibRoot>
<Console_EndpointLibRoot>$(DurangoXdkInstallPath)GXDK\gameKit\Lib\amd64;$(DurangoXdkInstallPath)GXDK\gameKit\Lib\amd64\Scarlett;$(DurangoXdkInstallPath)GRDK\gameKit\Lib\amd64</Console_EndpointLibRoot>
<Console_EndpointIncludeRoot>$(DurangoXdkInstallPath)GXDK\gameKit\Include\;$(DurangoXdkInstallPath)GXDK\gameKit\Include\Scarlett\;$(DurangoXdkInstallPath)GRDK\gameKit\Include\</Console_EndpointIncludeRoot>
<Console_WindowsIncludeRoot>$(WindowsSDKDir)Include\$(TargetPlatformVersion)\</Console_WindowsIncludeRoot>
<Console_Libs Condition="'$(Console_Libs)'==''">pixevt.lib;d3d12_xs.lib;xgameplatform.lib;xgameruntime.lib;xmem.lib;xg_xs.lib</Console_Libs>
<Console_UCRTRedistDebug>$(WindowsSDKDir)bin\$(TargetPlatformVersion)\x64\ucrt\</Console_UCRTRedistDebug>
<Console_SdkRoot>$(DurangoXdkInstallRoot)</Console_SdkRoot>
<Console_SdkIncludeRoot>$(Console_EndpointIncludeRoot);$(WindowsSDK_IncludePath);$(UniversalCRT_IncludePath);$(VC_VC_IncludePath);</Console_SdkIncludeRoot>
<Console_SdkLibPath>$(Console_EndpointLibRoot);$(WindowsSDK_LibraryPath_x64);$(UniversalCRT_LibraryPath_x64);$(VC_LibraryPath_VC_x64_OneCore)</Console_SdkLibPath>
MSBuild 로그의 라이브러리 및 Include 속성의 정의 예:
Console_EndpointIncludeRoot = C:\ExtractedGDK\241000\Microsoft GDK\241000\GXDK\gameKit\Include\;C:\ExtractedGDK\241000\Microsoft GDK\241000\GXDK\gameKit\Include\Scarlett\;C:\ExtractedGDK\241000\Microsoft GDK\241000\GRDK\gameKit\Include\
Console_EndpointLibRoot = C:\ExtractedGDK\241000\Microsoft GDK\241000\GXDK\gameKit\Lib\amd64;C:\ExtractedGDK\241000\Microsoft GDK\241000\GXDK\gameKit\Lib\amd64\Scarlett;C:\ExtractedGDK\241000\Microsoft GDK\241000\GRDK\gameKit\Lib\amd64
Console_ExtLibPaths = C:\ExtractedGDK\241000\Microsoft GDK\241000\GRDK\ExtensionLibraries\Xbox.Services.API.C\ExtensionLibrary.props
Console_ExtLibPathsString = C:\ExtractedGDK\241000\Microsoft GDK\241000\GRDK\ExtensionLibraries\Xbox.Services.API.C\ExtensionLibrary.props
Console_GRDKExtLibNamesString = PlayFab.Party.Cpp|PlayFab.PartyXboxLive.Cpp|Xbox.Game.Chat.2.Cpp.API|Xbox.Services.API.C
Console_GRDKExtLibRoot = C:\ExtractedGDK\241000\Microsoft GDK\241000\GRDK\ExtensionLibraries\
Console_LibRoot = C:\Program Files (x86)\Windows Kits\10\Lib\10.0.19041.0\
Console_Libs = pixevt.lib;d3d12_xs.lib;xgameplatform.lib;xgameruntime.lib;xmem.lib;xg_xs.lib
Console_SdkIncludeRoot = C:\ExtractedGDK\241000\Microsoft GDK\241000\GRDK\ExtensionLibraries\Xbox.Services.API.C\Include;C:\ExtractedGDK\241000\Microsoft GDK\241000\GXDK\gameKit\Include\;C:\ExtractedGDK\241000\Microsoft GDK\241000\GXDK\gameKit\Include\Scarlett\;C:\ExtractedGDK\241000\Microsoft GDK\241000\GRDK\gameKit\Include\;C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um;C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared;C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\winrt;C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\cppwinrt;C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt;C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt;;C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.30.30705\include;;
Console_SdkLibPath = C:\ExtractedGDK\241000\Microsoft GDK\241000\GRDK\ExtensionLibraries\Xbox.Services.API.C\Lib\x64\Release\v143;C:\ExtractedGDK\241000\Microsoft GDK\241000\GXDK\gameKit\Lib\amd64;C:\ExtractedGDK\241000\Microsoft GDK\241000\GXDK\gameKit\Lib\amd64\Scarlett;C:\ExtractedGDK\241000\Microsoft GDK\241000\GRDK\gameKit\Lib\amd64;C:\Program Files (x86)\Windows Kits\10\Lib\10.0.19041.0\ucrt\x64;C:\Program Files (x86)\Windows Kits\10\Lib\10.0.19041.0\um\x64;C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\ucrt\x64;;C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.30.30705\lib\onecore\x64
Console_SdkRoot = C:\ExtractedGDK\241000\Microsoft GDK\
Console_SdkToolPath = C:\ExtractedGDK\241000\Microsoft GDK\241000\GXDK\bin\Scarlett\
Console_UCRTRedistDebug = C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x64\ucrt\
Console_WindowsIncludeRoot = C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\
Gaming.Xbox.XboxOne.x64 및 Gaming.Xbox.Scarlett.x64 확장 라이브러리
확장 라이브러리는 Xbox.Services.API.C, Xbox.Game.Chat.2.Cpp.API, Xbox.XCurl.API, Xbox.LibHttpClient, PlayFab.Party.Cpp 및 PlayFab.PartyXboxLive.Cpp용으로 존재합니다. 이러한 기능을 사용하는 경우 프로젝트로 가져와서 아래 .props 파일에 정의된 내용을 기반으로 연결된 속성을 재정의해야 합니다.
Microsoft GDK(2024년 10월) 이상:
- C:\ExtractedGDK\241000\Microsoft GDK\241000\GRDK\ExtensionLibraries\Xbox.Services.API.C\ExtensionLibrary.props
- C:\ExtractedGDK\241000\Microsoft GDK\241000\GRDK\ExtensionLibraries\Xbox.Game.Chat.2.Cpp.API\ExtensionLibrary.props
- C:\ExtractedGDK\241000\Microsoft GDK\241000\GRDK\ExtensionLibraries\PlayFab.Party.Cpp\ExtensionLibrary.props
- C:\ExtractedGDK\241000\Microsoft GDK\241000\GRDK\ExtensionLibraries\PlayFab.PartyXboxLive.Cpp\ExtensionLibrary.props
- C:\ExtractedGDK\241000\Microsoft GDK\220600\GRDK\ExtensionLibraries\PlayFab.Services.C\ExtensionLibrary.props
Microsoft GDK(2024년 6월) 또는 그 이전:
- C:\ExtractedGDK\241000\Microsoft GDK\230600\GRDK\ExtensionLibraries\Xbox.Services.API.C\DesignTime\CommonConfiguration\Neutral\ExtensionLibrary.props
- C:\ExtractedGDK\241000\Microsoft GDK\230600\GRDK\ExtensionLibraries\Xbox.Game.Chat.2.Cpp.API\DesignTime\CommonConfiguration\neutral\ExtensionLibrary.props
- C:\ExtractedGDK\241000\Microsoft GDK\230600\GRDK\ExtensionLibraries\PlayFab.Party.Cpp\DesignTime\CommonConfiguration\neutral\ExtensionLibrary.props
- C:\ExtractedGDK\241000\Microsoft GDK\230600\GRDK\ExtensionLibraries\PlayFab.PartyXboxLive.Cpp\DesignTime\CommonConfiguration\neutral\ExtensionLibrary.props
- C:\ExtractedGDK\241000\Microsoft GDK\230600\GRDK\ExtensionLibraries\PlayFab.Services.C\DesignTime\CommonConfiguration\neutral\ExtensionLibrary.props
참고: Xbox.Services.API.C용 .props 파일은 Appnotify.lib, crypt32.lib 및 winhttp.lib를 추가 종속성으로 추가했습니다.
확장 라이브러리 속성은 대상 플랫폼 폴더 내의 Platform.Edition.props에 정의됩니다. 이러한 속성을 구성하는 방법에 대한 예제는 다음과 같습니다.
<GDKExtLibNames Condition="'$(GDKExtLibNames)'==''">Xbox.Services.API.C</GDKExtLibNames>
<Console_GRDKExtLibRoot>$(DurangoXdkInstallPath)GRDK\ExtensionLibraries\</Console_GRDKExtLibRoot>
<Console_GRDKExtLibNamesString>$([System.String]::Join('|', $([System.IO.Directory]::GetDirectories("$(Console_GRDKExtLibRoot)"))).Replace('$(Console_GRDKExtLibRoot)',''))</Console_GRDKExtLibNamesString>
<Console_ExtLibPathsString>$([System.Text.RegularExpressions.Regex]::Replace($(GDKExtLibNames), '($(Console_GRDKExtLibNamesString))','$(Console_GRDKExtLibRoot)%24%26\ExtensionLibrary.props'))</Console_ExtLibPathsString>
<Console_ExtLibPaths>$([MSBuild]::Unescape($(Console_ExtLibPathsString)))</Console_ExtLibPaths>
GDKExtLibNames
에서는 최대 5개의 라이브러리를 정의할 수 있습니다. 속성을 정의하지 않은 경우에는 기본적으로 Xbox.Services.API.C가 지정됩니다.
Gaming.Desktop.x64 프로젝트 사용자 지정
압축 해제된 Microsoft GDK(게임 개발 키트)에서 MSBuild를 사용하여 Gaming.Desktop.x64 프로젝트를 빌드하려면 프로젝트 사용자 지정이 필요합니다.
참고 항목
Gaming.Desktop.x64, Gaming.Xbox.Scarlett.x64 및 Gaming.Xbox.XboxOne.x64 속성 재정의 간의 주요 차이점은 아주 적습니다. 주목해야 할 가장 중요한 것은 Gaming.Desktop.x64 파일이 GRDK 경로 내에 있다는 것입니다. Gaming.Xbox.Scarlett.x64 및 Gaming.Xbox.XboxOne.x64 파일은 GXDK 경로에 있습니다(확장 라이브러리는 제외).
GDK용 Gaming.Desktop.x64 속성 재정의
Gaming.Desktop.x64 플랫폼용으로 구성된 프로젝트를 성공적으로 빌드하려면 다음 속성을 설정해야 합니다. 이들 속성은 프로젝트 파일 내에 정의된 Microsoft.Cpp.Default.props를 가져오기 전에 먼저 가져와야 합니다.
재정의 속성에 대한 설명
-
BWOI_GDK_Path
: 필수 속성이 아니지만 하드 코딩된 경로를 줄이기 위해 향후 속성 값에서 사용하도록 설정하는 것이 좋은 사용자 속성. -
Platform
:프로젝트 컴파일에 사용되는 플랫폼을 지정합니다. Microsoft GDK(게임 개발 키트)의 플랫폼은 Gaming.Desktop.x64입니다. -
XdkEditionTarget
: 빌드 컴파일에 사용되는 GDK 버전을 재정의합니다. 이 속성은 Platform.default.props에 정의되며 xdk.props에 설정된 내부 속성인XdkEdition
에서 파생됩니다. -
DurangoXdkInstallPath
: 추출된 GDK의 Microsoft GDK(게임 개발 키트) 폴더 위치를 재정의합니다. Platform.Edition.default.props에 정의됩니다. -
DefaultXdkEditionRootVS2019
: Visual Studio 2019 호환Platform
속성 및 대상 파일의 기본 위치를 재정의합니다. Platform.default.props에 정의됩니다.DefaultXdkEditionRootVS2019
Visual Studio 2019에서 프로젝트를 사용하는 경우에만 정의해야 합니다. -
XdkEditionRootVS2019
: Visual Studio 2019 호환Platform
속성 및 대상 파일의 위치를 재정의합니다. Platform.default.props에 정의됩니다.XdkEditionRootVS2019
Visual Studio 2019에서 프로젝트를 사용하는 경우에만 정의해야 합니다. -
DefaultXdkEditionRootVS2022
: Visual Studio 2022 호환Platform
속성 및 대상 파일의 기본 위치를 재정의합니다. Platform.default.props에 정의됩니다.DefaultXdkEditionRootVS2022
는 Visual Studio 2022에서 프로젝트를 사용하는 경우에만 정의해야 합니다. -
XdkEditionRootVS2022
: Visual Studio 2022 호환Platform
속성 및 대상 파일의 위치를 재정의합니다. Platform.default.props에 정의됩니다.XdkEditionRootVS2022
는 Visual Studio 2022에서 프로젝트를 사용하는 경우에만 정의해야 합니다. -
PlatformToolset
: 빌드하는 데 사용할 빌드 도구의 특정 버전을 재정의합니다. v142는 Visual Studio 2019에서 지원됩니다. v142 및 v143은 Visual Studio 2022에서 지원됩니다(v143은 기본적으로 정의됨). Microsoft.Cpp.Defaults.props에 정의됩니다.
이전에 압축 해제된 폴더의 예를 기반으로 한 Gaming.Desktop.x64 속성 값 예:
<BWOI_GDK_Path>C:\ExtractedGDK\241000\</BWOI_GDK_Path>
<Platform>Gaming.Desktop.x64</Platform>
<XdkEditionTarget>241000</XdkEditionTarget>
<DurangoXdkInstallPath>$(BWOI_GDK_Path)Microsoft GDK\</DurangoXdkInstallPath>
<DefaultXdkEditionRootVS2019>$(XdkEditionTarget)\GRDK\VS2019\flatDeployment\MSBuild\Microsoft\VC\v160\Platforms\$(Platform)\</DefaultXdkEditionRootVS2019>
<XdkEditionRootVS2019>$(DurangoXdkInstallPath)$(XdkEditionTarget)\GRDK\VS2019\flatDeployment\MSBuild\Microsoft\VC\v160\Platforms\$(Platform)\</XdkEditionRootVS2019>
<DefaultXdkEditionRootVS2022>$(XdkEditionTarget)\GRDK\VS2022\flatDeployment\MSBuild\Microsoft\VC\v170\Platforms\$(Platform)\</DefaultXdkEditionRootVS2022>
<XdkEditionRootVS2022>$(DurangoXdkInstallPath)$(XdkEditionTarget)\GRDK\VS2022\flatDeployment\MSBuild\Microsoft\VC\v170\Platforms\$(Platform)\</XdkEditionRootVS2022>
<PlatformToolset>$(PlatformToolset)</PlatformToolset>
Platform 폴더를 재정의하여 Gaming.Desktop.x64에 따른 특정 .props와 대상을 감지하려면 Visual Studio 플랫폼 재정의에서 다음 섹션을 참조하세요.
Windows 10 SDK용 Gaming.Desktop.x64 속성 재정의
다음 속성은 압축 해제된 Windows 10 SDK를 사용하는 경우에만 설정해야 합니다. 설치된 Windows 10 SDK를 사용하는 경우 이 섹션을 건너뛸 수 있습니다.
-
BWOI_Win10SDK_Path
: 필수 속성이 아니지만 하드 코딩된 경로를 줄이기 위해 향후 속성 값에서 사용하도록 설정하는 것이 좋은 사용자 속성. -
WindowsSdkDir
: Windows 10 SDK의 위치를 재정의합니다. -
WindowsSdkDir_10
: Windows 10 SDK의 위치를 재정의합니다(Windows 10). 이 속성은 빌드 컴파일 중에 가져온 Microsoft.Cpp.WindowsSDK.props의 레지스트리 키를 통해 확인됩니다. -
UCRTContentRoot
: 유니버설 CRT 콘텐츠 루트의 위치를 재정의합니다. 이 속성은 uCRT.props에 정의됩니다. -
UniversalCRTSdkDir
: Universal CRT SDK(Visual C++ C Runtime)의 위치를 재정의합니다. 빌드 컴파일 중에 가져온 Microsoft.Cpp.WindowsSDK.props의 레지스트리 키를 통해 확인됩니다. -
UniversalCRTSdkDir_10
: Universal CRT SDK(Windows 10용 Visual C++ C Runtime)의 위치를 재정의합니다. 빌드 컴파일 중에 가져온 Microsoft.Cpp.WindowsSDK.props의 레지스트리 키를 통해 확인됩니다. -
WindowsSDK_ExecutablePath_x86
: Windows 10 SDK에 포함된 x86 도구의 위치를 재정의합니다. 이 위치에는rc.exe
reside와 같은 도구가 있습니다. Microsoft.Cpp.WindowsSDK.props에 정의됩니다. -
WindowsSDK_ExecutablePath_x64
: Windows 10 SDK에 포함된 x64 도구의 위치를 재정의합니다. 이 위치에는rc.exe
reside와 같은 도구가 있습니다. Microsoft.Cpp.WindowsSDK.props에 정의됩니다. -
WindowsTargetPlatformVersion
: 사용 중인 Windows 10 SDK의 버전을 재정의합니다. Platform.Edition.default.props 폴더에 정의됩니다(정의되지 않은 경우 로컬 경로를 따름). -
TargetPlatformVersion
: 사용 중인 Windows 10 SDK의 버전을 재정의합니다. Microsoft.Cpp.WindowsSDK.props에 정의됩니다.
이전의 압축 해제된 폴더의 예를 기반으로 한 속성 값 예:
<BWOI_Win10SDK_Path>C:\ExtractedWin10SDK\</BWOI_Win10SDK_Path>
<WindowsSdkDir>$(BWOI_Win10SDK_Path)Windows Kits\10\</WindowsSdkDir>
<WindowsSdkDir_10>$(WindowsSdkDir)</WindowsSdkDir_10>
<UCRTContentRoot>$(WindowsSdkDir)</UCRTContentRoot>
<UniversalCRTSdkDir>$(WindowsSdkDir)</UniversalCRTSdkDir>
<UniversalCRTSdkDir_10>$(WindowsSdkDir)</UniversalCRTSdkDir_10>
<WindowsSDK_ExecutablePath_x86>$(WindowsSdkDir)bin\$(WindowsTargetPlatformVersion)\x86</WindowsSDK_ExecutablePath_x86>
<WindowsSDK_ExecutablePath_x64>$(WindowsSdkDir)bin\$(WindowsTargetPlatformVersion)\x64</WindowsSDK_ExecutablePath_x64>
<WindowsTargetPlatformVersion>10.0.19041.0</WindowsTargetPlatformVersion>
<TargetPlatformVersion>$(WindowsTargetPlatformVersion)</TargetPlatformVersion>
Microsoft GDK에는 Windows 10 SDK(19041) 이상이 필요합니다. 원하는 경우 Windows 10 SDK(20348)를 사용할 수 있지만 필수는 아닙니다.
Gaming.Desktop.x64 library 및 include 참조
라이브러리 및 포함 참조는 앞에서 언급한 재정의된 경로에서 파생되므로 직접 재정의할 필요가 없습니다. 이 섹션은 참조 전용입니다.
이러한 참조는 Gaming.Desktop.x64 플랫폼 폴더 내의 Platform.Edition.props에 정의되어 있습니다. 속성은 다음과 같이 생성됩니다.
<Console_LibRoot>$(WindowsSDKDir)Lib\$(TargetPlatformVersion)\</Console_LibRoot>
<Console_EndpointLibRoot>$(DurangoXdkInstallPath)GRDK\gameKit\Lib\amd64</Console_EndpointLibRoot>
<Console_EndpointIncludeRoot>$(DurangoXdkInstallPath)GRDK\gameKit\Include\</Console_EndpointIncludeRoot>
<Console_WindowsIncludeRoot>$(WindowsSDKDir)Include\$(TargetPlatformVersion)\</Console_WindowsIncludeRoot>
<Console_Libs>dxguid.lib;D3D12.lib;dxgi.lib;runtimeobject.lib;xGameRuntime.lib;</Console_Libs>
<Console_UCRTRedistDebug>$(WindowsSDKDir)bin\$(TargetPlatformVersion)\x64\ucrt\</Console_UCRTRedistDebug>
<Console_SdkRoot>$(DurangoXdkInstallRoot)</Console_SdkRoot>
<Console_SdkIncludeRoot>$(Console_EndpointIncludeRoot);$(WindowsSDK_IncludePath);$(UniversalCRT_IncludePath);$(VC_VC_IncludePath);</Console_SdkIncludeRoot>
<Console_SdkLibPath>$(Console_EndpointLibRoot);$(Console_LibRoot)um\x64;$(Console_LibRoot)ucrt\x64</Console_SdkLibPath>
MSBuild 로그의 라이브러리 및 Include 속성의 정의 예:
Console_EndpointIncludeRoot = C:\ExtractedGDK\241000\Microsoft GDK\241000\GRDK\gameKit\Include\
Console_EndpointLibRoot = C:\ExtractedGDK\241000\Microsoft GDK\241000\GRDK\gameKit\Lib\amd64
Console_ExtLibPaths = C:\ExtractedGDK\241000\Microsoft GDK\241000\GRDK\ExtensionLibraries\Xbox.Services.API.C\ExtensionLibrary.props
Console_ExtLibPathsString = C:\ExtractedGDK\241000\Microsoft GDK\241000\GRDK\ExtensionLibraries\Xbox.Services.API.C\ExtensionLibrary.props
Console_GRDKExtLibNamesString = PlayFab.Party.Cpp|PlayFab.PartyXboxLive.Cpp|Xbox.Game.Chat.2.Cpp.API|Xbox.Services.API.C
Console_GRDKExtLibRoot = C:\ExtractedGDK\241000\Microsoft GDK\241000\GRDK\ExtensionLibraries\
Console_LibRoot = C:\Program Files (x86)\Windows Kits\10\Lib\10.0.19041.0\
Console_Libs = dxguid.lib;D3D12.lib;dxgi.lib;runtimeobject.lib;xGameRuntime.lib;
Console_SdkIncludeRoot = C:\ExtractedGDK\241000\Microsoft GDK\241000\GRDK\ExtensionLibraries\Xbox.Services.API.C\Include;C:\ExtractedGDK\241000\Microsoft GDK\241000\GRDK\gameKit\Include\;C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um;C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared;C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\winrt;C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\cppwinrt;C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt;C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt;;C:\Program Files (x86)\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.30.30705\include;;
Console_SdkLibPath = C:\ExtractedGDK\241000\Microsoft GDK\241000\GRDK\ExtensionLibraries\Xbox.Services.API.C\Lib\x64\Release\v143;C:\ExtractedGDK\241000\Microsoft GDK\241000\GRDK\gameKit\Lib\amd64;C:\Program Files (x86)\Windows Kits\10\Lib\10.0.19041.0\um\x64;C:\Program Files (x86)\Windows Kits\10\Lib\10.0.19041.0\ucrt\x64
Console_SdkRoot = C:\ExtractedGDK\241000\Microsoft GDK\
Console_WindowsIncludeRoot = C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\
Gaming.Desktop.x64 확장 라이브러리
Xbox.Services.API.C, Xbox.Game.Chat.2.Cpp.API, Xbox.XCurl.API, PlayFab.Party.Cpp 및 PlayFab.PartyXboxLive.Cpp용 확장 라이브러리가 있습니다. 이러한 기능을 사용하는 경우 프로젝트로 가져와서 아래 .props 파일에 정의된 내용을 기반으로 적절한 속성을 재정의해야 합니다.
- C:\ExtractedGDK\241000\Microsoft GDK\241000\GRDK\ExtensionLibraries\Xbox.Services.API.C\ExtensionLibrary.props
- C:\ExtractedGDK\241000\Microsoft GDK\241000\GRDK\ExtensionLibraries\Xbox.Game.Chat.2.Cpp.API\ExtensionLibrary.props
- C:\ExtractedGDK\241000\Microsoft GDK\241000\GRDK\ExtensionLibraries\PlayFab.Party.Cpp\ExtensionLibrary.props
- C:\ExtractedGDK\241000\Microsoft GDK\241000\GRDK\ExtensionLibraries\PlayFab.PartyXboxLive.Cpp\ExtensionLibrary.props
참고: Xbox.Services.API.C용 .props 파일이 추가 종속성으로 Appnotify.lib를 추가했습니다. 이 라이브러리를 프로젝트로 가져와야 합니다.
확장 라이브러리 속성은 대상 플랫폼 폴더 내의 Platform.Edition.props에 정의됩니다. 이러한 속성을 구성하는 방법에 대한 예제는 다음과 같습니다.
<GDKExtLibNames Condition="'$(GDKExtLibNames)'==''">Xbox.Services.API.C</GDKExtLibNames>
<Console_GRDKExtLibRoot>$(DurangoXdkInstallPath)GRDK\ExtensionLibraries\</Console_GRDKExtLibRoot>
<Console_GRDKExtLibNamesString>$([System.String]::Join('|', $([System.IO.Directory]::GetDirectories("$(Console_GRDKExtLibRoot)"))).Replace('$(Console_GRDKExtLibRoot)',''))</Console_GRDKExtLibNamesString>
<Console_ExtLibPathsString>$([System.Text.RegularExpressions.Regex]::Replace($(GDKExtLibNames), '($(Console_GRDKExtLibNamesString))','$(Console_GRDKExtLibRoot)%24%26\ExtensionLibrary.props'))</Console_ExtLibPathsString>
<Console_ExtLibPaths>$([MSBuild]::Unescape($(Console_ExtLibPathsString)))</Console_ExtLibPaths>
GDKExtLibNames
에서는 최대 5개의 라이브러리를 정의할 수 있습니다. 정의하지 않은 경우에는 기본적으로 Xbox.Services.API.C가 지정됩니다.
PC 측 도구의 속성 재정의
Microsoft GDK(게임 개발 키트)를 압축 해제된 플랫 배포로 사용하는 경우, PC 측 도구도 사용하고 있다면 이 속성을 정의하는 것이 좋습니다.
<GameDK>$(BWOI_Win10SDK_Path)</GameDK>
<GameDKLatest>$(BWOI_Win10SDK_Path)$(XDKEditionTarget)\</GameDKLatest>
<GRDKLatest>$(GameDKLatest)GRDK\</GRDKLatest>
<GXDKLatest>$(GameDKLatest)GXDK\</GXDKLatest>
Visual Studio 버전 관련 재정의
이 섹션에서는 설치 없이 빌드에 제대로 작동하도록 재정의해야 하는 버전 관련 Visual Studio 속성에 대해 자세히 설명합니다.
Visual Studio 2019 플랫폼 재정의
Visual Studio 2019부터 _PlatformFolder
속성은 더 이상 사용되지 않습니다. 설치 없이 프로젝트 구성을 지원하는 솔루션에는 Visual Studio 2019의 추가 단계가 필요합니다.
이렇게 하려면 Visual Studio 2019의 설치된 버전에서 필요한 파일을 압축 해제된 GDK 경로에 복사합니다. 예를 들면 :
- v142 Platform Toolset의 경우: C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\v160
다음 경로의 폴더 구조와 일치하도록 복사되어야 합니다.
- v142 플랫폼 도구 집합의 경우: C:\ExtractedGDK\241000\Microsoft GDK\241000\GRDK\VS2019\flatDeployment\MSBuild\Microsoft\VC\v160\Platforms
참고 항목
앞의 예제에서는 ExtractedGDK 폴더에 파일을 직접 복사합니다. 참조/유지 관리를 위해 압축 해제된 GDK 및 Visual Studio VC Targets 파일을 따로 유지하려는 경우 빌드 시스템에서 참조할 수 있도록 ExtractedGDK 및 VC Targets 모두를 앞서 언급한 새로 조합된 폴더 경로에 복사할 수 있습니다.
이에 대한 예제는 다음과 같습니다.
- C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\v160 루트(*.*)의 모든 파일을 C:\ExtractedGDK\241000_CombinedGDK\ 폴더 내의 유사한 경로로 복사합니다.
- *C:\ExtractedGDK\241000\Microsoft GDK*의 모든 파일을 C:\ExtractedGDK\241000_CombinedGDK\ 폴더 내의 유사한 경로로 복사합니다.
- 참조/경로/속성을C:\ExtractedGDK\241000_CombinedGDK\ 해당 경로를 가리키도록 변경합니다.
이 작업을 완료한 후 Visual Studio 2019에서 빌드를 호출할 때 Platform
속성 및 대상 파일 위치를 적절히 찾을 수 있도록 다음 속성을 재정의해야 합니다.
-
DisableInstalledVCTargetsUse
을(를)true
(으)로 설정 -
VCTargetsPath16
: Visual Studio 2019 Build Tools (v160) 속성 및 대상 파일이 있는 위치를 결정하기 위해 Visual Studio 경로를 재정의합니다.
참고 항목
VC 대상 경로 속성은 XdkEditionRootVS2019
속성 정의의 일부이므로 이 경우 XdkEditionRootVS2019
을(를) 설정하지 않도록 선택할 수 있습니다.
이전에 압축 해제된 폴더의 예를 기반으로 한 속성 값 예:
<DisableInstalledVCTargetsUse>true</DisableInstalledVCTargetsUse>
<VCTargetsPath16>$(DurangoXdkInstallPath)$(XdkEditionTarget)\GXDK\VS2019\flatDeployment\MSBuild\Microsoft\VC\v160\</VCTargetsPath16>
참고 항목
참조/유지 관리를 위해 ExtractedGDK 및 VC Targets를 따로 유지하려는 경우 그에 따라 VCTargetsPath
속성을 지정할 수 있습니다(이 경우 $(CombinedGDK)(은)는 생성한 새로운 위치입니다).
-
VCTargetsPath16
을(를) $(CombinedGDK)\v160\(으)로 설정
Windows 10 SDK 재정의를 적용하는 Visual Studio 2019(16.5) 속성
Visual Studio 2019 버전 16.5 이상을 사용하는 경우 다음과 같이 Windows 10 SDK 속성 재정의가 제대로 적용될 수 있도록 다른 속성을 설정해야 합니다.
<ClearDevCommandPromptEnvVars>false</ClearDevCommandPromptEnvVars>
Visual Studio 2022 플랫폼 재정의
Visual Studio 2019부터 _PlatformFolder
속성은 더 이상 사용되지 않습니다. 설치 없이 프로젝트 구성을 지원하는 솔루션은 Visual Studio 2022에서 추가 단계가 필요합니다.
이렇게 하려면 설치된 Visual Studio 2022 버전에서 필요한 파일을 추출된 GDK 경로로 복사합니다. 예:
- v142 플랫폼 도구 집합의 경우: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\VC\v160
- v143 플랫폼 도구 집합의 경우: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\VC\v170
다음 경로의 폴더 구조와 일치하도록 복사되어야 합니다.
- v142 플랫폼 도구 집합의 경우: C:\ExtractedGDK\241000\Microsoft GDK\241000\GRDK\VS2022\flatDeployment\MSBuild\Microsoft\VC\v160\Platforms
- v143 플랫폼 도구 집합의 경우: C:\ExtractedGDK\241000\Microsoft GDK\241000\GRDK\VS2022\flatDeployment\MSBuild\Microsoft\VC\v170\Platforms
참고 항목
앞의 예제에서는 ExtractedGDK 폴더에 파일을 직접 복사합니다. 참조/유지 관리를 위해 압축 해제된 GDK 및 Visual Studio VC Targets 파일을 따로 유지하려는 경우 빌드 시스템에서 참조할 수 있도록 ExtractedGDK 및 VC Targets 모두를 앞서 언급한 새로 조합된 폴더 경로에 복사할 수 있습니다.
이에 대한 예제는 다음과 같습니다.
- C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\VC\v170 루트(*.*)의 모든 파일을 C:\ExtractedGDK\241000_CombinedGDK\ 폴더 내의 유사한 경로로 복사합니다.
- *C:\ExtractedGDK\241000\Microsoft GDK*의 모든 파일을 C:\ExtractedGDK\241000_CombinedGDK\ 폴더 내의 유사한 경로로 복사합니다.
- 참조/경로/속성을C:\ExtractedGDK\241000_CombinedGDK\ 해당 경로를 가리키도록 변경합니다.
이 작업이 완료되면 Visual Studio 2022에서 빌드를 호출할 때 다음 속성을 재정의해야 Platform
속성과 대상 파일 위치를 올바르게 찾을 수 있습니다.
-
DisableInstalledVCTargetsUse
을(를)true
(으)로 설정 -
VCTargetsPath16
: Visual Studio 2019 Build Tools (v160) 속성 및 대상 파일이 있는 위치를 결정하기 위해 Visual Studio 경로를 재정의합니다. -
VCTargetsPath17
: Visual Studio 2022 빌드 도구(v170) 속성 및 대상 파일이 있는 위치를 결정하기 위해 Visual Studio 경로를 재정의합니다.
참고 항목
VC 대상 경로 속성은 XdkEditionRootVS2022
속성 정의의 일부이므로 이 경우 XdkEditionRootVS2022
을(를) 설정하지 않도록 선택할 수 있습니다.
이전에 압축 해제된 폴더의 예를 기반으로 한 속성 값 예:
<DisableInstalledVCTargetsUse>true</DisableInstalledVCTargetsUse>
<VCTargetsPath16>$(DurangoXdkInstallPath)$(XdkEditionTarget)\GXDK\VS2022\flatDeployment\MSBuild\Microsoft\VC\v160\</VCTargetsPath16>
<VCTargetsPath17>$(DurangoXdkInstallPath)$(XdkEditionTarget)\GXDK\VS2022\flatDeployment\MSBuild\Microsoft\VC\v170\</VCTargetsPath17>
참고 항목
참조/유지 관리를 위해 ExtractedGDK 및 VC Targets를 따로 유지하려는 경우 그에 따라 VCTargetsPath
속성을 지정할 수 있습니다(이 경우 $(CombinedGDK)(은)는 생성한 새로운 위치입니다).
-
VCTargetsPath16
을(를) $(CombinedGDK)\v160\(으)로 설정 -
VCTargetsPath17
을(를) $(CombinedGDK)\v170\(으)로 설정
Windows 10 SDK 재정의를 존중하는 Visual Studio 2022 속성
또한 다음과 같이 Windows 10 SDK 속성 재정의가 올바르게 적용되도록 다른 속성을 설정해야 합니다.
<ClearDevCommandPromptEnvVars>false</ClearDevCommandPromptEnvVars>
프로젝트 구성 샘플
이 섹션에서는 설치가 없는 시나리오에 대해 코드 샘플을 가져오는 방법을 설명합니다.
CMake 샘플
시작하고 실행하기 위한 명령을 포함하여 CMakeExample 샘플은 Xbox 개발자 다운로드 페이지에서 참조용으로 다운로드할 수 있습니다. "파일 형식 선택"에서 "GDK"를 선택하고 "빌드/버전 번호 선택"에서 최신 "샘플만" 항목을 선택합니다.
MSBuild 샘플
시작하고 실행하기 위한 명령을 포함하여 BWOIExample 샘플은 Xbox 개발자 다운로드 페이지에서 참조용으로 다운로드할 수 있습니다. "파일 형식 선택"에서 "GDK"를 선택하고 "빌드/버전 번호 선택"에서 최신 "샘플만" 항목을 선택합니다.