> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# MicrosoftGame.config Element - Executable

> MicrosoftGame.config Element - Executable

# 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](/build/core-features/common/packaging/deployment/makepkg) **/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](/build/core-features/common/packaging/deployment/makepkg) **要求 MicrosoftGame.config 中的所有可执行文件使用相同的 TargetDeviceFamily 规范**，才能正确生成你标题的包。当尝试运行 [MakePkg.exe](/build/core-features/common/packaging/deployment/makepkg) 且 ExecutableList 元素中存在两个或多个 TargetDeviceFamily 属性时，你将收到以下错误。

      <span>Error: All executables must have the same value for TargetDeviceFamily in the MicrosoftGame.config file when building a package. (found XboxOne and Scarlett)</span>

<a id="MicrosoftGameConfig-Alias" />

#### ExecutionAlias

Executable 元素的 Alias 属性可用于利用 ExecutionAlias 功能，通过其别名从命令提示符启动你的 PC 标题并具有标题标识。

Alias 属性应设置为可执行文件名，以确保在使用别名时标题被正确注册且标识正确。如果在可执行文件的当前目录中使用别名，Windows 将直接指向可执行文件而非别名，因此在此场景中注册和正确标识的好处将无法生效。如果可执行文件的当前目录位于本地 PC 的 %PATH% 环境变量中，也会指向可执行文件而非别名。

在命令提示符中运行可执行文件别名时，你可以通过 `<ExecutionAlias> [launch args]` 用法提供标题参数。

有关在 PC 上启动标题的更多信息，请参阅[利用 Microsoft Game Development Kit 工具安装和启动你的 PC 标题](/tools/tools-pc/launching-on-pc)。

## 另请参阅

[MicrosoftGame.config 参考 - 目录](/reference/system/microsoftgameconfig/elements/gc-microsoftgameconfig-toc)


## Related topics

- [MicrosoftGame.config Element - ExecutableList](/zh-CN/reference/system/microsoftgameconfig/elements/microsoftgameconfig-element-executablelist.md)
- [MicrosoftGame.config Element - MultiplayerProtocol](/zh-CN/reference/system/microsoftgameconfig/elements/microsoftgameconfig-element-multiplayerprotocol.md)
- [MicrosoftGame.config Element - Protocol](/zh-CN/reference/system/microsoftgameconfig/elements/microsoftgameconfig-element-protocol.md)
- [MicrosoftGame.config Element - FileTypeAssociation](/zh-CN/reference/system/microsoftgameconfig/elements/microsoftgameconfig-element-filetypeassociation.md)
- [MicrosoftGame.config Element - Game](/zh-CN/reference/system/microsoftgameconfig/elements/microsoftgameconfig-element-game.md)
