跳转到主要内容

简介

欢迎使用 2026 年 4 月 Microsoft Game Development Kit with XBOX Extensions (GDKX) 以及公共 GDK 版本。你可以使用 GDKX 通过共享代码库开发可在 Windows 11 PC、Windows 10 PC、XBOX One 和 XBOX Series X|S 主机上通过认证并获准发布的游戏。使用 GDK,你可以开发可在 Windows 11 PC 和 Windows 10 PC 上通过认证并获准发布的游戏。

GDKX

GDK

关于本文档

本文档分为以下几个部分。
注意:发行说明的描述后面带有一个编号,例如 [12345678]。对于 GDKX 用户,此编号表示 Microsoft 用于跟踪与该项相关的工作和历史记录的内部 ID。如果你对某条发行说明有疑问,此编号可能对你的开发人员客户经理有用。

2026 年 4 月 Microsoft Game Development Kit 中的新增功能

  • GDKX 和 GDK 以两种类型发布:主要版本(侧重于功能,每年两次)和更新(侧重于修复,根据合作伙伴的需要随时发布)。
  • 若要查看完整的新增功能部分,请参阅新增功能的联机版本。
  • 若要查看以前版本的发行说明,对于 GDKX,请参阅 GDK 论坛上的发行说明帖子。对于 GDKX 和 GDK,你可以在联机文档 GDK 发行说明中查看发行说明。

2026 年 4 月 GDK 更新 5

问题修复

PlayFab Party

已将 PlayFab Party 更新到 v1.10.26,其中包括以下修复:
  • 修复了销毁 PartyEndpoint 时可能发生的崩溃。
  • 修复了对来自 /MultiplayerServer/GetCognitiveServicesToken 的空响应、格式错误的响应或不完整响应的处理。Party 现在会将请求报告为失败,而不会可能发生崩溃。
  • 修复了在远程设备离开对等网络后直接连接设置才完成时可能发生的崩溃。
[63883777]

系统

修复了向 XSpeechSynthesizerCreateStreamFromText 传递大型字符串时,xgameruntime.dll!OnRuntimeDisconnected 中可能发生的游戏崩溃。[63860960]
改进了执行游戏存档读取或写入操作时对内存压力的处理。[63996543]
改进了游戏存档读取或写入操作失败时返回的错误代码。[63996543]

2026 年 4 月 GDK 更新 4

问题修复

Social Manager

修复了 GDK C Thunks DLL 未导出 Privacy 静音列表、阻止列表以及 Social 好友请求计数更改处理程序函数的问题。由于此问题,调用这些函数的游戏会在无提示的情况下链接到 XSAPI 静态库而不是 thunks DLL,最终导致运行时不匹配。[63776691]
修复了填充 Social Manager 社交关系图时发生的堆栈溢出崩溃,其原因是 PeoplehubService::DeserializeUser 使用了一个 17 KB 的堆栈帧,其中保存了每个 XblSocialManagerUser 的三个冗余副本。[63776693]

MSIXVC1(打包)

不带 /msixvc2 选项的 makepkg2 pack 再次可以正常运行,不会再出现有关 /usepublisherkey 选项的错误。此问题是在更新 3 中引入的。[63529609]

Wdapp

修复了在同时包含 ARM64 和 x64 二进制文件的游戏上使用 wdapp register 时,在 ARM64 计算机上未选择相应二进制文件的问题。[63756866]

PIX

修复了 PIX 时间线中未显示命名围栏箭头的问题。[63446892]

2026 年 4 月 GDK 更新 3

通知

Publisher Content

PC 和主机游戏现在可以提供 Publisher Content。这是一种新的包类型,使游戏发布者能够在自己的 CDN 上托管和更新内容,同时由平台继续管理安装、后台下载、完整性和用户体验。 开发人员在其 MicrosoftGame.config 中声明它(通过基础游戏上新的 PublisherContent 元素和内容包上的 PublisherContentBaseProduct 字段),并使用相应的新 makepkg 参数生成包。 游戏可以使用新的 XPackageGetPackageKind() API 识别现有 GDK API 返回的包的类型,该 API 现在除了报告 Game 和 Content 之外,还会报告 XPackageKind::PublisherContent。 [63082917]

PlayFab Party

已将用于生成该库的 Windows 平台工具集从 v142 升级到 v143。[63294760]

PIX

新增了一个用于转换编程计时捕获的 CLI 工具:convertpevt.exe。[62666766]

问题修复

Clang/LLVM

XBOX Game OS 综合库 xgameplatform.lib 已更新,添加了以下 Win32 API,以支持 clang/LLVM 的 PGO 检测实现:FlushViewOfFile、VirtualUnlock。 使用 clang/LLVM PGO 的开发人员还需要为 clang/LLVM 实现所使用的一些旧版 POSIX API 提供链接别名,才能成功链接:
[62740693]

PIX

加载大型外部着色器 PDB 缓存更加可靠且一致。[63014983]

PIX DirectStorage

修复了在计时捕获中从“元素详细信息”视图或“范围详细信息”视图导航时导致缩放行为不正确的问题。[62664029]
修复了在深色模式下,计时捕获时间线中表示 DirectStorage 批处理开始的菱形标记难以辨认的问题。[62664035]

XBOX Manager

修复了在“远程控制”选项卡中查看主机或组的视频时可能发生的 XBOX Manager 崩溃。[62844048]

PlayFab Game Saves

修复了 Steam Deck 上的轻微遥测报告问题,即在存档操作期间某些诊断字段填充不正确。[62642608]
在 Steam Deck 上禁用了冲突失败方上传功能,以与 XBOX/GRTS 行为保持一致。[62642612]
修复了 PlayFab Game Saves 错误处理缺失的注册表项而导致初始化错误的问题。[62642607]

Social Manager

修复了当初始 People Hub 好友列表请求始终未完成时,Social Manager 好友列表可能在整个会话期间间歇性保持为空的问题(XblSocialManagerDoWork 未引发 LocalUserAdded 事件)。现在会自动恢复初始请求,因此无需重新启动游戏即可填充社交关系图。[63202269]
修复了当好友正在玩显示名称包含连字符的游戏时,Social Manager 返回不正确的游戏名称和丰富状态文本的问题。其原因是状态字符串在第一个连字符处拆分,而不是在预期的“空格-连字符-空格”分隔符处拆分。[63202289]

PlayFab Party

修复了当游戏尚未配置音频输出时,音频操控语音流不生成任何缓冲区的问题。[63294702]
修复了在音频操控处于活动状态时切换网络可能导致语音丢失的问题。[63294760]
修复了当音频操控捕获流处于活动状态时缺少最终语音转文本转录的问题。[63294760]
修复了在 Party 完成关闭之前删除进程任务队列时,关闭过程中可能发生的崩溃。[63294760]
修复了可能发生的释放后使用问题,即内部 HTTP 跟踪对象可能在支持的异步任务完成之前被删除。[63294760]
修复了在某些 WMI 注册表配置错误的 PC 环境中,PlayFab Party 无法绑定到其 UDP 多人游戏端口的 bug。[63251323]

Publisher Content

修复了 XTaskQueue 中的一个内部 bug,以防止在拆解期间无限等待。[63190218]

MSIXVC2

现在,即使 Intelligent Delivery layout.xml 中有多个功能使用同一图像文件,也能成功创建 MSIXVC2。[63117723]
MSIXVC2 pack 命令会正常忽略 /maxencryptionfragments 和 /nogameos 选项(这些选项对 MSIXVC2 没有影响),以便更轻松地融入现有生成管道。[63118134]
MSIXVC2 pack 命令现在可以正确包含源目录中属于符号链接的文件。以前它会错误地将这些文件视为长度为 0 的文件。[63118309]

2026 年 4 月 GDK 更新 2

通知

开发人员工具

适用于 Visual Studio 2019 的 Direct3D 12 Desktop Game (Classic) 模板不再包含 ARM64 配置。已弃用使用 Visual Studio 2019 面向 ARM64 的支持。需要 Visual Studio 2022 或更高版本。[62468394]

提供 Markdown 文件

GDK 安装程序中已添加包含 GDK 文档 Markdown 文件的 .zip 文件。以前,此 .zip 文件只能从 https://aka.ms/gdkdl 单独下载。[62398050]

问题修复

输入

修复了在 XBOX 上的 NuGet 版本 GameInput 中调用 GameInputCreate 时可能发生内存不足错误的问题。[62353092]

PIX

修复了打开在 Lockhart 40GB 上拍摄的捕获时,PIX 错误地将主机模式报告为 Lockhart 的问题。[62490828]

媒体

修复了在未提交输入视频样本的情况下创建并销毁解码器时,H.264 解码器 Media Foundation Transform (MFT) 在销毁期间停止响应的问题。[62525251]

系统

修复了未签名(本地)MSIXVC2 包无法使用 wdapp 安装的问题。[62386086]

2026 年 4 月 GDK 更新 1

通知

XBOX Game Package Manager

创建和上传 MSIXVC2 包时,请使用 GitHub 上最新发布的 XBOX Game Package Manager (XGPM) UI 版本。此版本包含多项修复。若要下载,请转到 releases - Microsoft/PackageUploader。

问题修复

系统

修复了 XGameActivationAcceptPendingInvite API 中的内存泄漏。[61953160]
修复了 XLaunchUri 在 URI 长度超过 21 个字符时失败的问题。[62181431]
修复了 XGameInvite.h 和 XGameProtocol.h GDK 头文件中可能导致 C4768 编译器错误的问题。[62181564]

MSIXVC2

修复了 MSIXVC2 预览版中的各种组件可靠性和性能问题。[62225080]

开发人员工具

修复了 MicrosoftGame.config 编辑器在报告成功的同时无提示地无法保存或创建新文件的问题。[62226865]

2026 年 4 月 GDK

通知

GDK 布局弃用

2025 年 10 月和 2026 年 4 月的 GDK 版本同时包含简化布局和旧版布局。从 2026 年 10 月 GDK 开始,安装程序默认仅安装简化布局。旧版布局仍可作为可选安装项进行选择,但它已被弃用,不再是推荐的开发路径。 从 2027 年 4 月 GDK 版本开始,旧版布局将不再受支持,并将从安装程序中移除。

API 弃用

XGameActivation API 已取代 XGameProtocol 和 XGameInvite API,为所有游戏激活场景提供单一的 API 接口。因此,XGameProtocol 和 XGameInvite 现已弃用。现有实现将继续正常工作,但我们建议在新开发中迁移到 XGameActivation,以确保未来的兼容性。 以下 API 已弃用。
  • XGameProtocolRegisterForActivation
  • XGameProtocolUnregisterForActivation
  • XGameInviteRegisterForEvent
  • XGameInviteUnregisterForEvent
  • XGameInviteRegisterForPendingEvent
  • XGameInviteUnregisterForPendingEvent
  • XGameInviteAcceptPendingInvite
有关详细信息,请参阅 XGameActivation。 [61232139]

开发人员工具

Visual Studio 2019 的主流支持已到期。扩展支持将持续到 2029 年 4 月。有关 Visual Studio 2019 产品生命周期和服务的详细信息,请参阅 Visual Studio 2019 产品生命周期和服务。 自 2024 年 4 月起,Visual Studio 2019 和 v142 工具集编译器已不再提供主流支持,仅提供安全服务。在 GDK 的未来版本中,将移除对 Visual Studio 2019 集成以及通过 Visual Studio 2022/Visual Studio 2026 使用 v142 平台工具集的支持。此过程将包括移除 Microsoft.Xbox.Services.142.GDK.C.lib 库。对于 Visual Studio 2022 和 Visual Studio 2026,我们建议改用 2026 年 4 月 GDK 中新增的 Microsoft.Xbox.Services.143.GDK.C.lib。 [61594513]
Visual Studio 2019 不再支持适用于 XBOX 的 Address Sanitizer (ASAN)。[60868415]
现在可以从 XBOX Manager 的“媒体捕获”选项卡将屏幕截图复制到剪贴板。[41667882]
wdcapture、wdcapturesession 和 xblpcsandbox 等 PC 命令行工具现在支持通过反馈中心应用直接提交 bug 反馈。[60250549]
Package Uploader 现在支持联合凭据。[60771527]

Microsoft Azure PlayFab

PlayFab Multiplayer 已更新到 v1.9.0。有关详细信息,请参阅 PlayFab Multiplayer C++ SDK 发行说明 - PlayFab | Microsoft Learn。[61288995]

Microsoft Azure PlayFab Party

PlayFab Party 已更新到 v1.10.18。有关详细信息,请参阅 PlayFab Party 发行说明 - PlayFab | Microsoft Learn。[61288995]

问题修复

修复了在运行 xbapp.exe 或 xbconnect.exe 等 GDK XBOX 命令行工具后,非英语命令提示符中的语言设置变为英语的问题。[59688191]
修复了 XBOX Game Package Manager 未在 UI 中填充上次选择的分支的问题。[60771527]

已知问题

makepkg2:/priorpackage 不会为 MSIXVC2 包生成比较报告

问题:
在 makepkg2 中,打包 MSIXVC2 包时使用 /priorpackage 标志不会生成比较报告。此版本不支持为 MSIXVC2 包生成比较报告。
适用于:
  • 2026 年 4 月 GDK
解决方法:
目前没有。
状态:
此问题将在未来的 GDK 更新中修复。
[61771743]

makepkg2:layout.xml 要求所有功能都具有 DisplayName

问题:
在 makepkg2 中,layout.xml 分析程序要求所有功能都具有 DisplayName 属性,包括显示名称没有意义的隐藏功能。
适用于:
  • 2026 年 4 月 GDK
解决方法:
为 layout.xml 中的所有隐藏功能添加占位符 DisplayName 属性。
状态:
此问题将在未来的 GDK 更新中修复。
[61767246]

makepkg2:当 MicrosoftGame.config 中缺少 ContentId 时 /contentid 标志失败

问题:
在 makepkg2 中,如果 MicrosoftGame.config 中未指定 ContentId,使用 /contentid 标志会导致以下错误。
/contentid specified on the command line does not match the ContentId derived from the MicrosoftGame.config file. 此行为与 makepkg 不同,后者在此场景中会直接接受 /contentid 值。 适用于:
  • 2026 年 4 月 GDK
解决方法:
使用 /contentidoverride 代替 /contentid。
状态:
此问题将在未来的 GDK 更新中修复。
[61767256]

无法通过 Microsoft 合作伙伴中心的 Web UI 上传 MSIXVC2 包

问题:
如果 .msixvc 包是使用新的 makepkg2 工具生成的,则将其上传到合作伙伴中心会失败。
适用于:
  • 合作伙伴中心 Web UI
解决方法:
使用以下工具之一将 MSIXVC2 包上传到合作伙伴中心。
状态:
合作伙伴中心将在未来几个月内更新,以添加对通过 Web 上传 MSIXVC2 包的支持。

XboxPcTray.exe 可能会阻止 MSIXVC2 包的卸载或更新

问题:
XboxPcTray.exe 有时会保留游戏 Content 文件夹的句柄,这可能会导致卸载或更新操作无法完成。
适用于:
  • 2026 年 4 月 GDK
解决方法:
在尝试卸载或更新之前,关闭 XBOX PC Tray 应用。若要关闭它,请右键单击系统托盘中的 XboxPcTray 图标,然后选择退出。你也可以在任务管理器中结束 XboxPcTray.exe 进程。
状态:
此问题将在未来的 GDK 更新中修复。
[61618609]

无法通过 Package Uploader 上传 MSIXVC2 包

问题:
如果包是使用带有 /msixvc2 标志的 makepkg2 工具生成的,则通过 Package Uploader 命令行工具将 .msixvc 包上传到合作伙伴中心会失败,并出现 400 (Bad Request) 错误。尽管 MSIXVC 和 MSIXVC2 包使用相同的 .msixvc 文件扩展名,但 MSIXVC2 包使用不同的内部格式,而 Package Uploader 目前不支持该格式。
适用于:
  • Package Uploader CLI (PackageUploader.exe)
解决方法:
使用以下工具之一上传 MSIXVC2 包。
状态:
此问题将在 Package Uploader 的未来版本中解决。

合作伙伴中心的 UI 中 MSIXVC2 包的大小显示为 1 字节

问题:
合作伙伴中心为已上传的 MSIXVC2 包显示的大小不正确。无论包的实际大小如何,都显示为 1 字节。
适用于:
  • 合作伙伴中心
解决方法:
目前没有。
状态:
此问题将在未来的 GDK 工具更新中修复。

适用于 Visual Studio 2026 的 Build With/Out Install (BWOI) MSBuild 集成

问题:
适用于 Visual Studio 2026 的 Build With/Out Install (BWOI) MSBuild 集成与以前的版本略有不同。在 Visual Studio 2026 的当前版本中,BWOI 实现必须“锁定”到特定的 VCTargetsPath。结果是,即使 PlatformToolset 值设置为 v142 或 v143,所有项目也都会使用 v145 或 clang-cl 生成。在标准 Visual Studio 场景中,这些较旧的工具集通常可以正确生成。
适用于:
  • 2026 年 4 月 GDK
解决方法:
有关解决方法的详细信息,请参阅 BWOIExample。
状态:
GDK 团队和 Visual Studio 团队正在努力在未来的 Visual Studio 版本中解决此问题。
[61855642]

文档

2026 年 4 月版 GDKX 的脱机文档由 GDKX 安装程序安装在你的开发 PC 上。运行安装程序后,GDKX 的帮助文件 (gdk.chm) 位于 C:\Program Files (x86)\Microsoft GDK\Documentation 中。

最后修改于 2026年11月6日