Skip to main content
如果游戏保持最新版本至关重要,游戏可以检查并应用更新。当游戏包含多人游戏功能,需要所有玩家运行的游戏具有相同的功能时,这一点尤其重要。 游戏可以使用 XStoreQueryGameAndDlcPackageUpdatesAsync 检查更新,如以下示例代码所示:
如果游戏包含许多不需要检查更新的 DLC 项目(例如仅用于授权的空 DLC 包),上述代码可能会因为逐个检查而带来不必要的开销。 请改用 XStoreQueryPackageUpdatesAsync,按当前游戏的包 ID 进行过滤,包 ID 可通过 XPackageGetCurrentProcessPackageIdentifier 获取,或从 XPackageEnumeratePackages 返回的包 ID 中过滤:

下载并安装更新

在确定了更新集合后,使用 XStoreDownloadAndInstallPackageUpdatesAsync 将所有更新加入队列并进行下载。
此时游戏会终止以应用更新。此过程在没有警告的情况下发生,因此在调用此函数前,请提供充分的用户提示或确认。

监控下载进度

当下载正在进行时,使用 XPackageCreateInstallationMonitor 监控下载进度:

测试更新

在开发期间,你只能通过本地包来测试更新的可用性。
  1. 创建包含更新检查和下载代码的 V1 包。
  2. 使用相同的标识但递增的版本号创建 V2 包。
  3. 运行 xbapp/wdapp install V1。
  4. 运行 xbapp/wdapp update V2 /a
  5. 启动 V1。
确保两个包之间的内容 ID 匹配。 此流程的结果是:V1 中的 XStoreQueryGameAndDlcPackageUpdatesAsyncXStoreQueryPackageUpdatesAsync 调用会找到任何可用更新,然后 XStoreDownloadAndInstallPackageUpdatesAsync 会使用发布的 V2 包更新 V1。当 V2 的“下载”正在进行时,此状态会显示在 XBOX 下载队列、XBOX 应用或 Microsoft Store 应用中的队列项目上。安装完成后,V2 就被安装了。你可以使用 xbapp/wdapp list[dlc] 验证安装情况。 使用 /m 代替 /a 会将更新标记为“强制”,这只会影响 XStorePackageUpdate.isMandatory 字段。 由于签名差异,你无法从开发版本更新到从商店下载的包。 有关如何创建高效的更新以及不同的测试方法,请参阅下一节中引用的内容更新页面。

参考 API 文档

另请参阅

商务概述 启用 XStore 开发与测试 内容更新最佳实践 创建、检查和测试内容更新 XStore API 参考
最后修改于 2026年8月24日