本文所描述的 Microsoft Game Development Kit(GDK)头文件与库的新布局,预计将在 2025 年 10 月 GDK 中发布。如果你对该 GDK 的预览版感兴趣,请联系你的 Microsoft 客户经理。
旧的头文件与库布局
Microsoft GDK 现有的文件布局概览如下。新的头文件与库布局
在 2025 年 10 月 GDK 版本中,新布局为头文件与库提供了另一种布局,使平台集成更简单,并能够随时间容纳更多平台。结合 MSBuild 自定义平台使用新布局
现有的 Gaming.*.x64 MSBuild 平台默认使用旧布局,但你可以通过设置 GDKCrossPlatform 属性来切换到新布局。
项目需要将它所使用的扩展库添加到 AdditionalDependencies 中,因为每个都是“可选加入”的。
项目还需要将其使用的额外 DLL 复制到布局中。这既可以通过很多 DLL 库集成常用的 Custom Build 步骤完成,也可以通过编辑 vcxproj 或添加 props 文件,使用 ReferenceCopyLocalPaths item 组列表来完成。下面的 MSBuild 列出了所有可能的 DLL,但单个项目通常只需要其中的一部分。
GameDKLatest 仅由带 XBOX Extensions 的 Microsoft GDK 设置。因此,我们引入了新的环境变量,可完整支持两个版本的 Microsoft GDK 并存安装:GameDKCoreLatest 由 Microsoft GDK 设置。使用 Directory.Build.props 文件
要快速使用新布局验证现有的 GDK Gaming.*.x64 项目,可将以下内容放入源码树中名为 Directory.Build.props 的文件。这会启用新布局,并包含大多数或全部扩展库,即使项目并未使用它们。使用 GDKCrossPlatform 设为 true 构建时,MSBuild 规则不会使用 GDKExtLibNames 属性。但由于该属性已经存在于旧 MSBuild 规则中,本 props 文件将其用作在布局中启用一些额外 DLL 的方式。
如何将 x64 游戏升级以添加 ARM64
要为现有的 x64 游戏项目添加 ARM64 支持,请按以下步骤操作:- 使用 Visual Studio 2022。 ARM64 支持需要 Visual Studio 2022。ARM64 构建不支持 Visual Studio 2019。
- 启用新布局。 通过在项目文件中将
GDKCrossPlatform设为true,确保项目使用新布局。 - 创建 ARM64 配置。 复制现有的 x64 配置(如 Debug 和 Release)以创建对应的 ARM64 配置。
- 更新库路径。 编辑 ARM64 配置的 VC++ Directories,使库路径引用
lib\arm64而不是lib\x64。 - 更新 XSAPI 库引用。 更新 所有 配置(不只是 ARM64)的链接语句,使其使用
Microsoft.Xbox.Services.143.GDK.C.lib而不是Microsoft.Xbox.Services.142.GDK.C.lib。 - 更新 ReferenceCopyLocalPaths。 检查
.vcxproj中的ReferenceCopyLocalPaths用法,可能需要更新为引用arm64而非x64的 bin 目录。
如果作品启动时失败并报错 0xc000007b,意味着你意外地将 x64 格式的 DLL 加载到了 ARM64 进程中。请检查项目系统中的
ReferenceCopyLocalPaths 项是否需要更新。结合 MSBuild x64 平台使用新布局
除了使用 Gaming.Desktop.x64 平台之外,你也可以使用标准的 x64 平台构建 PC。在旧布局中,这需要按照《Using the x64 platform with the Microsoft Game Development Kit (GDK)》中的说明为扩展库添加<Import Project="...\ExtensionLibrary.props"> 语句。
在新布局中,集成指令得到了精简。
结合 CMake 使用新布局
使用 CMake 的 Microsoft Visual Studio 生成器结合 Gaming.*.x64 自定义 MSBuild 平台时,通过以下代码启用新布局。VS_GLOBAL_GDKExtLibNames 的使用,并替换为以下代码(需 CMake 3.21 或更高版本),以将所用的扩展 DLL 拷贝到布局中。
结合自定义构建系统使用新布局
使用 GDK 构建 Windows x64 需要以下配置。从已安装的文件中读取构建版本
新布局中不再包含grdk.ini 文件。要通过解析文件获取版本信息,请使用 grdk.h。
以下 PowerShell 示例同样适用于较旧的 GDK 版本。
