Skip to main content
本主题介绍如何使用 feature 与 recipe 改善用户对你游戏的首次和后续安装时间。feature 与 recipe 协同工作,用于定义你的基础游戏中用户可在首次安装期间以及之后在 shell 中添加和移除的内容组。你还可以使用运行时 API 动态查询 feature 的安装状态并触发 feature 的添加和移除。 feature 是一种 XML 元素,指定面向开发者的 ID 字符串属性,同时指定用于在 shell 中显示的可本地化面向用户的显示名称和图像。feature 指定一个或多个标签。安装和更新时,系统会找出已安装 feature 引用的所有标签,并安装包含这些标签的所有 chunk。 recipe 是一种 XML 元素,指定应安装的 feature 列表。始终存在一个默认 recipe,该 recipe 包含的 feature 始终被安装。可以定义其他 recipe,如果用户或当前主机拥有所指定 StoreIds 中任一项的授权,则在安装时激活,如以下代码所示。
feature 可以包含多个以分号分隔的 tag 属性。只要 chunk 中的任一标签被某个活动的 feature 包含,该 chunk 就会被纳入安装。# 符号表示当 # 两侧的标签都活动时才安装。

本地化 feature 显示名

DisplayNames 的本地化方式与 MicrosoftGame.config 文件中的 name 属性本地化方式相同,通过使用 ms-resource:name 格式配合游戏 strings 目录中的 .resw 文件以及按语言命名的子目录中的字符串完成。有关详细信息,请参阅 MicrosoftGame.Config 本地化
MicrosoftGame.config 和 Intelligent Delivery 所使用的本地化字符串值和图像在已发布的包中不会加密,无论是在开发者沙箱还是零售环境中。请在游戏中为标题、图标以及任何敏感内容使用占位符值。敏感内容包括开发期间 Intelligent Delivery 所引用的、在你的游戏公开披露之前的任何内容,或者游戏中的特定内容。

隐藏 feature

feature 可以被标记为隐藏,从而阻止用户在安装时或安装后管理 shell 时选择显示为可选项。使用隐藏 feature 时请务必小心,因为添加或移除它们的唯一方式是通过游戏内 API。你的游戏中一旦出现 bug,可能导致内容不可访问,直到你提供修复此类 bug 的内容更新。以下代码是被标记为隐藏的 feature 示例。

检查 feature 安装状态

可以使用 feature 检查其指定标签的所有 chunk 是否已就绪。执行这些运行时查询时,会考虑设备和语言修饰符。如果 feature 中包含设备或语言专用内容,只要有一种语言以及该 feature 中适用于当前设备的所有 chunk 已安装,仍会返回 true 例如,如果 Campaign Feature 的资源包含在 chunk 8000、8001 和 8002 中,与其调用 XPackageFindChunkAvailability 方法来判断这组 chunk 是否已完全安装并可玩,你可以将这三个 chunk 都打上自定义标签 “campaign1”,并在 Campaign Feature 中引用 “campaign1”。然后使用 XPackageChunkSelector 并传入 Campaign Feature ID 调用 XPackageFindChunkAvailability 方法,即可轻松获得该数据集合的安装状态。

参考 API 文档

另请参阅

Intelligent Delivery 简介 XPackageChunkSelector XPackageInstallChunks MicrosoftGame.Config 本地化
最后修改于 2026年8月13日