> ## 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.

# 针对 PC 的 MSIXVC2 打包入门

> 针对 PC 的 MSIXVC2 打包入门

按照以下步骤创建可在开发 PC 上旁加载测试并上传到合作伙伴中心发布的 MSIXVC2 包。

有关该格式及其优势的背景信息，请参阅 [MSIXVC2 打包概述](/build/core-features/common/packaging/overviews/packaging-msixvc2-overview)。

<Info>
  MSIXVC2 自 2026 年 10 月的 Microsoft Game Development Kit (GDK) 起正式可用。你可以旁加载 MSIXVC2 包进行测试，并将其提交认证以公开发布。
</Info>

<Note>
  某些 MSIXVC2 功能和改进通过 Gaming Runtime Services 的更新提供，无需 GDK 更新。这些增强功能会随其发布自动生效。
</Note>

<Note>
  如果你在为 XBOX 主机打包，请参阅 [XBOX 主机打包入门](/build/core-features/common/packaging/overviews/packaging-getting-started-for-console)。主机游戏继续使用 XVC。`makepkg` 工具同时处理两种格式。
</Note>

## 开始之前

* 开发 PC 上运行 **Windows 10** 版本 18362 或更高版本。
* 已安装 **2026 年 10 月 GDK 或更高版本**。GDK 包含 `makepkg.exe`。

<Note>
  自 2026 年 10 月 GDK 起，托管打包工具的名称为 `makepkg.exe`。旧版 MakePkg.exe 以及临时的 `makepkg2.exe` 名称均已移除。
</Note>

* **合作伙伴中心产品** 你需要发行商身份、包名称和 Store ID。
* 在目标测试 PC 上启用了**开发者模式**。
* 在任何要安装或运行 MSIXVC2 包的设备上设置了 **MSIXVC2 开发者模式注册表项**。详情参见[步骤 7](#step-7-test-your-package-locally)。

## 步骤 1：准备内容

将游戏的所有源材料放入一个目录。移除打包系统无法使用或不适合在零售包中发行的文件。

如果存在以下文件，请删除：

* PDB 文件。
* 对其他 PC 游戏商店的任何引用，例如资源、二进制文件等。
* 通用 Windows 平台 (UWP) 和 Appx 的 “footprint” 文件，包括 AppxSignature.p7x 和 AppxBlockMap.xml。

## 步骤 2：创建 MicrosoftGame.config

在游戏内容的根目录中创建 MicrosoftGame.config 文件。此配置文件可与 MSIXVC 配合使用。你现有的 MicrosoftGame.config 无需更改即可与 MSIXVC2 配合使用。

你可以手动创建此文件，也可以使用 [MicrosoftGame.config 编辑器](/build/core-features/common/game-config/MicrosoftGameConfig-Editor)从合作伙伴中心项目直接同步身份和 ID 值。

有关示例 MicrosoftGame.config 文件，请参阅[针对 PC 的 MSIXVC 入门](/build/core-features/common/packaging/overviews/packaging-getting-started-for-PC#sample-microsoftgameconfig)。

## 步骤 3：识别 Visual C/C++ 运行时依赖项

确保你的 MicrosoftGame.config 列出所有 Visual C/C++ 运行时依赖项，或将这些依赖项显式复制到包负载中。有关详细信息，请参阅[框架包依赖](/build/core-features/common/packaging/packaging-framework-packages)。

## 步骤 4：创建图标

将图标文件按 MicrosoftGame.config 的 `ShellVisuals` 部分中指定的尺寸缩放后，放入游戏内容的根文件夹（或子目录）中。[MicrosoftGame.config 编辑器](/build/core-features/common/game-config/MicrosoftGameConfig-Editor)可以从单个源图像生成这些图像。

## 步骤 5：生成布局映射文件（可选）

此步骤为可选。默认情况下，MSIXVC2 会将所有内容打包到单个 chunk 中。仅当你希望将内容拆分为多个 chunk 或添加 Intelligent Delivery 标签时才需要布局映射文件。

要生成布局映射文件，请打开 GDK 命令提示符并运行以下命令：

```text theme={null}
makepkg genmap /f layout.xml /d <your_game_folder>
```

此命令会创建定义内容如何组织为 chunk 的布局映射文件。生成的文件包含单个 chunk。你可以编辑该文件，将内容拆分为多个 chunk，或按需添加 Intelligent Delivery 标签。

<Tip>
  在 MSIXVC2 中，重新排序 chunk 或在 chunk 之间移动文件不会影响内容更新大小。你可以自由组织布局，不必担心 MSIXVC 中存在的更新代价问题。
</Tip>

有关布局文件的更多信息，请参阅[部署包架构](/build/core-features/common/packaging/deployment/atoc-deployment-schema)。

## 步骤 6：创建 MSIXVC2 包

创建包：

```text theme={null}
makepkg pack /msixvc2 /f layout.xml /d <your_game_folder> /pc /pd <output_folder>
```

关键选项：

| 选项                   | 说明                                                                              |
| -------------------- | ------------------------------------------------------------------------------- |
| `/msixvc2`           | 生成 MSIXVC2 包。不带此选项时，该命令生成 MSIXVC 包。自 2027 年 4 月 GDK 起，`makepkg` 默认创建 MSIXVC2 包。 |
| `/f <mapfile>`       | 指定布局映射文件。省略时生成默认的单块布局。                                                          |
| `/d <sourcedir>`     | 包含游戏内容和 MicrosoftGame.config 的目录。                                               |
| `/pc`                | 生成用于 PC 的包。                                                                     |
| `/pd <outputdir>`    | 放置生成包的目录。                                                                       |
| `/compress <method>` | 压缩输出。可用方法：`Automatic`（默认）、`None`。`Automatic` 对 MSIXVC2 包使用 Brotli。              |

## 步骤 7：本地测试包

在目标 PC 上启用开发者模式。在安装 MSIXVC2 包之前，在目标设备上设置以下注册表项：

```text theme={null}
reg add HKLM\SOFTWARE\Microsoft\GamingServices /v Xvc2DeveloperMode /t REG_DWORD /d 1 /f
```

或者，你也可以使用 `packageutil` 启用 MSIXVC2 开发者模式：

```text theme={null}
packageutil set msixvc2 on
```

禁用 MSIXVC2 开发者模式：

```text theme={null}
packageutil set msixvc2 off
```

<Note>
  `packageutil set` 命令需要 2026 年 10 月 GDK 或更高版本。
</Note>

<Info>
  在未来的 GDK 版本之前需要此注册表项。若不设置，MSIXVC2 包无法安装。请从提升权限的（管理员）命令提示符运行此命令。
</Info>

然后安装你的包：

```text theme={null}
wdapp install <your_package.msixvc>
```

MSIXVC2 包安装到 `[drive]:\XboxGames` 文件夹。文件以其原始形式安装，你可以直接访问。此安装位置与使用[平铺文件安装](/build/core-features/common/packaging/packaging-flatfileinstall)的 MSIXVC 包所用位置相同。

你可以将本地旁加载的相同包上传到合作伙伴中心，无需单独的提交打包步骤。

## 步骤 8：上传到合作伙伴中心

<Info>
  在合作伙伴中心中将 MSIXVC2 包发布到一个**新分支**（例如 `msixvc2`）。不要将 MSIXVC2 包上传到与现有 MSIXVC 包相同的分支。两种格式在同一分支内不可互换，将分支从 MSIXVC2 回退到 MSIXVC 需要对包进行完整的上传和下载。有关详细信息，请参阅[包分支最佳实践](/build/core-features/common/packaging/overviews/packaging-msixvc2-overview#package-branch-best-practices)。
</Info>

上传到合作伙伴中心有两种选项。

### 选项 A：上传预构建的包

如果你已在步骤 6 中创建了包，请直接上传：

```text theme={null}
makepkg upload /pd <package_directory> /branch msixvc2
```

### 选项 B：从散文件上传（一条命令的工作流）

你可以将打包与上传合并为一条命令。此命令直接从构建输出上传，不创建本地包文件：

```text theme={null}
makepkg upload /d <your_game_folder> /msixvc2 /pc /branch msixvc2
```

### 上传选项

| 选项                   | 说明                                                                              |
| -------------------- | ------------------------------------------------------------------------------- |
| `/branch <branch>`   | 上传到的分支。默认为 `main`。请使用专用的 MSIXVC2 分支。                                            |
| `/flight <flight>`   | 上传到的飞行版。不能与 `/branch` 一起使用。                                                     |
| `/market <market>`   | 上传到的市场。默认为 `default`。                                                           |
| `/storeid <storeId>` | Store ID。若未指定，从包中提取。                                                            |
| `/auth <method>`     | 身份验证方法。默认为 `CacheableBrowser`。有关 CI/CD 选项，请参阅[身份验证方法](#authentication-methods)。 |

有关完整的上传选项列表，请参阅 [Make package (makepkg.exe)](/build/core-features/common/packaging/deployment/makepkg)。

<a id="authentication-methods" />

## 身份验证方法

`upload` 命令支持面向不同环境的多种身份验证方法。

| 方法                         | 使用场景                                                 |
| -------------------------- | ---------------------------------------------------- |
| `CacheableBrowser`         | 默认。打开浏览器进行交互式登录。为后续上传缓存凭据。                           |
| `Browser`                  | 打开浏览器进行交互式登录，不缓存。                                    |
| `AzureCli`                 | 使用 Azure CLI 凭据。已通过 `az login` 完成身份验证时非常有用。          |
| `AzurePipelines`           | 使用 Azure Pipelines 服务连接。非常适合 Azure DevOps CI/CD 流水线。 |
| `ManagedIdentity`          | 使用 Azure 托管标识。需要 `/clientid`。                        |
| `ManagedIdentityFederated` | 使用联合托管标识。需要 `/clientid` 和 `/resourceid`。             |
| `ClientSecret`             | 使用客户端 ID 和密码。需要 `/clientid` 和 `/clientsecret`。       |
| `ClientCertificate`        | 使用客户端证书。需要 `/clientid` 和 `/certthumbprint`。          |
| `Environment`              | 使用环境变量中的凭据。                                          |
| `Default`                  | 依次尝试多种方法。                                            |

**示例：CI/CD 流水线上传**

```text theme={null}
makepkg upload /pd <package_directory> /auth AzurePipelines /branch <branch>
```

**示例：服务主体上传**

```text theme={null}
makepkg upload /pd <package_directory> /auth ClientSecret /clientid <appId> /clientsecret <secret> /branch <branch>
```

## 步骤 9：在合作伙伴中心验证并发布

上传后，使用合作伙伴中心验证并发布你的包。提交流程与 MSIXVC 相同——选择你的包、配置可用性并提交。

你可以将 MSIXVC2 包发布到沙箱进行测试，并将其提交认证以公开发布。

<Tip>
  保留现有 MSIXVC 流水线用于生产发布。使用合作伙伴中心的独立分支进行 MSIXVC2 评估，以便并排比较结果并在 GA 时迁移到 MSIXVC2，而不影响正在运营的游戏。
</Tip>

## 比较更新大小

若要评估 MSIXVC2 对你的游戏的收益，可基于两次连续构建创建包并比较：

```text theme={null}
makepkg pack /msixvc2 /f layout.xml /d <old_build> /pc /pd <output_old>
makepkg pack /msixvc2 /f layout.xml /d <new_build> /pc /pd <output_new> /priorpackage <output_old\package.msixvc>
```

将所得更新大小与等效 MSIXVC 构建进行比较以查看差异。

## MSIXVC2 中的 Intelligent Delivery

Intelligent Delivery 在 MSIXVC2 中的工作方式与在 MSIXVC 中相同。你在布局映射文件中定义 chunk 并设置语言、设备或标签修饰符。关键区别在于，重新组织 chunk 或在 chunk 之间移动文件不会影响内容更新大小。

有关详细信息，请参阅[流式安装和 Intelligent Delivery：概述](/build/core-features/common/packaging/overviews/streaming_install-intelligent_delivery)。

## 另请参阅

[MSIXVC2 打包概述](/build/core-features/common/packaging/overviews/packaging-msixvc2-overview) [Make package (makepkg.exe)](/build/core-features/common/packaging/deployment/makepkg) [针对 PC 的 MSIXVC 入门](/build/core-features/common/packaging/overviews/packaging-getting-started-for-PC) [MSIXVC2 内容更新](/build/core-features/common/packaging/packaging-updates-msixvc2) [MSIXVC2 加密模型](/build/core-features/common/packaging/packaging-encryption-msixvc2) [XBOX Game Package Manager](/build/core-features/common/packaging/xgpm) [自动化包上传](/build/core-features/common/packaging/package-uploader) [平铺文件安装概述](/build/core-features/common/packaging/packaging-flatfileinstall) [部署包架构](/build/core-features/common/packaging/deployment/atoc-deployment-schema)
