MicrosoftGame.config Element - Executable
指定特定可执行文件的详细信息。此部分属性包括可执行文件的名称 (Name)、其所构建的目标设备 (TargetDeviceFamily)、应用程序 ID (Id)、是否为仅限开发的可执行文件 (IsDevOnly)、是否覆盖 ShellVisuals 节点中的显示名称 (OverrideDisplayName)、是否覆盖 ShellVisuals 节点中的 Logo (OverrideLogo)、是否覆盖 ShellVisuals 节点中的 Square480x480Logo (OverrideSquare480x480Logo)、是否覆盖 ShellVisuals 节点中的 Square44x44Logo (OverrideSquare44x44Logo)、是否覆盖 ShellVisuals 节点中的 SplashScreenImage (OverrideSplashScreenImage),以及可执行文件是否具有别名(当前仅限桌面)。父元素
此元素的父元素是 ExecutableList 元素。要求
此元素必须设置。平台
此元素适用于 PC 和主机。行为
- 属性为:
- Name
- TargetDeviceFamily
- Architecture
- Id
- IsDevOnly
- OverrideDisplayName
- OverrideLogo
- OverrideSquare480x480Logo
- OverrideSquare44x44Logo
- OverrideSplashScreenImage
- Alias
- 默认值为:
- Name 属性没有默认值。
- TargetDeviceFamily 属性的默认值为你正在运行标题的设备。
- Architecture 的默认值为 x64。
- Id 属性有一个基于 Name 属性的默认值。如果 Name 属性无法生成有效的 Id,则将使用 Game0 作为回退值。
- IsDevOnly 属性的默认值为 false。
- OverrideDisplayName 属性的默认值为 ShellVisuals 中相应属性的值。
- OverrideLogo 属性的默认值为 ShellVisuals 中相应属性的值。
- OverrideSquare480x480Logo 属性的默认值为 ShellVisuals 中相应属性的值。
- OverrideSquare44x44Logo 属性的默认值为 ShellVisuals 中相应属性的值。
- OverrideSplashScreenImage 属性的默认值为 ShellVisuals 中相应属性的值。
- Alias 没有默认值。
- 允许值:
- Name 允许值为相对于游戏根目录的可执行文件路径。
- TargetDeviceFamily 允许值为 XboxOne、Scarlett、PC。
- Architecture 允许值为 x64 和 ARM64。
- Id 允许值为最多 64 个字符的 ASCII 字符串。
- IsDevOnly 允许值为 true 或 false。
- OverrideDisplayName 允许值为最多 256 个字符的字符串。
- OverrideLogo 允许值为指向 .png 文件的相对文件路径。
- OverrideSquare480x480Logo 允许值为指向 .png 文件的相对文件路径。
- OverrideSquare44x44Logo 允许值为指向 .png 文件的相对文件路径。
- OverrideSplashScreenImage 允许值为指向 .png 文件的相对文件路径。
- Alias 允许值为可执行文件名(与 Name 相同,但不能包含路径)。
备注
- Name 属性为必填项。
- 打包时需要 TargetDeviceFamily 属性。
- 在包含 Architecture = ARM64 的可执行文件时,还必须包含 Architecture = x64 的可执行文件。如果不包含 x64 二进制文件,包将无法生成并显示错误 0x89245212 E_GAMEPACKAGE_CONFIG_x64_EXECUTABLE_REQUIRED。
Executable 与 TargetDeviceFamily
Executable 元素旨在为你的标题可执行文件设置属性。此元素不适用于 DLC 包配置。 在开发过程中,ExecutableList 元素中可以定义任意数量的 Executable 元素以用于松散文件部署。在最终包提交之前进行打包时,支持多个 Executable 元素,任意数量带有 IsDevOnly 属性的可执行文件元素都将包含在包中。 但是,在最终包提交进行母版化和认证时,任何带有 IsDevOnly 属性的可执行文件都必须手动从 MicrosoftGame.config 文件和包内容中删除。在 2024 年 3 月 GDK 之前,isDevOnly 可执行文件会在加密包生成过程中自动被剥离(使用 MakePkg.exe pack /lk 或 /l 签名)。如果发现 isDevOnly 可执行文件,Submission Validator 将继续发出 FAILURE。 在 ExecutableList 元素中指定 Executable 元素时,可以提供一个名为 TargetDeviceFamily 的属性。这旨在指定可执行文件所构建的目标设备。TargetDeviceFamily 属性的允许值为 XBOX One、Scarlett 和 PC。 在运行 MakePkg pack 用于 XBOX 主机时,如果没有 Executable 定义了 TargetDeviceFamily 属性,打包将默认使用 XboxOne TargetDeviceFamily。在向 MakePkg pack 指定 /pc 标志时,如果没有 Executable 定义了 TargetDeviceFamily 属性,打包将默认使用 PC TargetDeviceFamily。MakePkg.exe 要求 MicrosoftGame.config 中的所有可执行文件使用相同的 TargetDeviceFamily 规范,才能正确生成你标题的包。当尝试运行 MakePkg.exe 且 ExecutableList 元素中存在两个或多个 TargetDeviceFamily 属性时,你将收到以下错误。 Error: All executables must have the same value for TargetDeviceFamily in the MicrosoftGame.config file when building a package. (found XboxOne and Scarlett)ExecutionAlias
Executable 元素的 Alias 属性可用于利用 ExecutionAlias 功能,通过其别名从命令提示符启动你的 PC 标题并具有标题标识。 Alias 属性应设置为可执行文件名,以确保在使用别名时标题被正确注册且标识正确。如果在可执行文件的当前目录中使用别名,Windows 将直接指向可执行文件而非别名,因此在此场景中注册和正确标识的好处将无法生效。如果可执行文件的当前目录位于本地 PC 的 %PATH% 环境变量中,也会指向可执行文件而非别名。 在命令提示符中运行可执行文件别名时,你可以通过<ExecutionAlias> [launch args] 用法提供标题参数。
有关在 PC 上启动标题的更多信息,请参阅利用 Microsoft Game Development Kit 工具安装和启动你的 PC 标题。
