跳转到主要内容
本文介绍的目录结构是随 2025 年 10 月 GDK 引入的简化(跨平台)布局。从 2026 年 10 月 GDK 开始,默认安装简化布局。旧版布局仍作为一个可选的、已弃用的兼容途径提供,供需要更多迁移时间的团队使用。从 2027 年 4 月 GDK 版本开始,旧版布局将不再受支持,并将从安装程序中移除。
在当前版本的 Microsoft Game Development Kit (GDK) 中,布局围绕代码共享进行了优化,并专注于特定平台。此布局的构建集成在很大程度上依赖于将复杂性隐藏在 MSBuild 自定义平台中。新布局的重点在于简化集成、支持不断增加的目标平台,以及改进对标准 MSBuild 平台和非 Microsoft 构建系统的支持。

旧的头文件和库布局

Microsoft GDK 现有的文件布局概括如下。
Gaming.Desktop.x64、Gaming.Xbox.Scarlett.x64 和 Gaming.Xbox.XboxOne.x64 自定义 MSBuild 平台实现了构建 include/lib 路径的全部逻辑,以各种方式组合所有这些内容。如果你使用 CMake 或自定义 make 解决方案,则也必须在其中实现此逻辑。有关详细示例,请参阅 2025 年 4 月版本的 CMakeExample。 2025 年 10 月和 2026 年 4 月 GDK 版本同时包含简化布局和旧版布局。从 2026 年 10 月 GDK 开始,安装程序默认仅安装简化布局。旧版布局仍可作为可选安装项进行选择,但它已被弃用,不再是推荐的开发途径。 从 2027 年 4 月 GDK 版本开始,旧版布局将不再受支持,并将从安装程序中移除。

新的头文件和库布局

2025 年 10 月 GDK 版本为头文件和库提供了一种替代布局,使平台集成更加容易,并能够随着时间的推移容纳更多平台。

在 MSBuild 自定义平台中使用新布局

现有的 Gaming.*.x64 MSBuild 平台默认使用旧布局,但你可以通过设置 GDKCrossPlatform 属性选择使用新布局。
这样会将相应的 include/lib 路径添加到项目中,而不是使用旧布局所用的各种复杂路径。 在这种新的简化集成中,不再使用扩展库机制。默认情况下,所有内容在构建时都可通过 include/lib 路径获得。 然后,项目需要链接到其使用的其他库。基于较旧 GDK 项目模板构建的项目应包含如下语句。
对于新布局,Console_Libs 属性将列出必需的核心库。 项目需要将其使用的扩展库添加到 AdditionalDependencies 中,因为每个扩展库都是“选择加入”的。 项目还需要将其使用的其他 DLL 复制到布局中。这可以通过许多 DLL 库集成中常用的自定义生成步骤来完成,也可以通过编辑 vcxproj 或添加 props 文件来使用 ReferenceCopyLocalPaths 项组列表来完成。下面的 MSBuild 列出了所有可能的 DLL,但各个项目只需要其中的一部分。
GameDKLatest 仅由 Microsoft GDK with XBOX Extensions 设置。因此,我们引入了新的环境变量,全面支持两个版本的 Microsoft GDK 并行安装:GameDKCoreLatest 由 Microsoft GDK 设置,GameDKXboxLatest 由 Microsoft GDK with XBOX Extensions 设置。

使用 Directory.Build.props

若要使用新布局快速验证现有的 GDK Gaming.*.x64 项目,请将以下内容放入源代码树中名为 Directory.Build.props 的文件中。这会选择使用新布局,并包含大部分或全部扩展库,即使项目并未使用它们。
在将 GDKCrossPlatform 设置为 true 进行构建时,MSBuild 规则不会使用 GDKExtLibNames 属性。由于该属性在使用较旧 MSBuild 规则构建时已经存在,因此在此 props 文件中用它来选择将某些其他 DLL 加入布局。

在 MSBuild x64 平台中使用新布局

你可以使用标准 x64 平台(而不是 Gaming.Desktop.x64 平台)来构建 PC 版本。在旧布局中,这需要为扩展库添加 <Import Project="...\ExtensionLibrary.props"> 语句,详见在 Microsoft Game Development Kit (GDK) 中使用 x64 平台。 在新布局中,集成说明得到了简化。
将所有必需的扩展库与原始列表一起添加到 AdditionalDependencies 中。
需要按照上文所述,使用自定义生成操作或 ReferenceCopyLocalPaths 项组,将选择加入的扩展库 DLL 复制到二进制目录中,以形成最终布局。 关于 PreprocessorDefinitions 以及处理带有图像资产的 .mgc 文件的其余说明保持不变。

在 CMake 中使用新布局

在 CMake 中使用 Microsoft Visual Studio 生成器并使用 Gaming.*.x64 自定义 MSBuild 平台时,可通过以下方式启用新布局。
在 CMakeGDKExample 中,删除对 VS_GLOBAL_GDKExtLibNames 的使用,并将其替换为以下内容(假定使用 CMake 3.21 或更高版本),以将所用的扩展 DLL 复制到布局中。

在自定义构建系统中使用新布局

使用 GDK 构建 Windows x64 版本需要以下设置。
构建 XBOX Series X|S(即 Gaming.Xbox.Scarlett.x64)版本需要:
构建 XBOX One(即 Gaming.Xbox.XboxOne.x64)版本需要:

将新布局用于 PC 内容工具

对于主机开发,某些类型的内容“烘焙”是在开发 PC 上使用 XTF API、XMA2 编码库和/或自定义 Direct3D 12.X 工具完成的。访问这些内容需要特定的构建设置: 构建同时面向 XBOX One 和 XBOX Series X|S 的 PC 工具需要:
构建面向 XBOX Series X|S 图形的 PC 工具需要:
构建面向 XBOX One 图形的 PC 工具需要:

从已安装的文件中读取构建版本

新布局不包含 grdk.ini 或 gxdk.ini 文件。若要通过解析文件来查找版本信息,请使用 grdk.h 或 gxdk.h。 下面是一个 PowerShell 示例,它同样适用于较旧的 GDK 版本。

无需安装构建 (BWOI)

在旧布局中原本位于 <edition>\flatDeployment 下的 MSBuild 自定义构建平台文件,现在位于 <edition>\xbox\build 下,路径更短。 例如,若要为 VS 2022 设置 BWOI MSBuild 规则文件夹,请使用以下命令。
然后,在用于 BWOI 的 Directory.Build.props 中设置属性,使其指向此合并后的文件夹。
最后修改于 2026年11月6日