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

# 手动创建符号包

> 了解在无法自动创建符号包时，如何手动创建并上传符号包。

在打包或上传游戏时，MakePkg 和 Submission Validator 通常会自动创建符号包。仅当无法自动创建符号包或自动创建未生成所需的符号包时，才将此过程用作备用方案。

## 开始之前

在创建符号包之前，请收集以下信息和文件：

* 包的完整名称 (`PackageFullName`)。
* 游戏 ID (`TitleId`)。
* *MicrosoftGame.config* 中的 `Identity` `Name` 值。
* 通过 `/f` 传递给 MakePkg 的确切布局文件。
* 已打包的 EXE 和 DLL 文件。
* 与每个已打包的 EXE 和 DLL 完全匹配的 PDB 文件。

如果创建包时未使用 `/f`，请使用 [`makepkg genmap`](/zh-CN/build/core-features/common/packaging/deployment/makepkg#genmap) 创建布局文件。将该文件传递给 `makepkg pack /f` 以重新生成包，然后在符号包中使用同一布局文件。

> \[!IMPORTANT]
> 每个 PDB 都必须与已打包版本中的二进制文件完全匹配。来自其他版本的 PDB 无法为该二进制文件提供符号。

## 创建符号包

1. 创建名为 `<PackageFullName>_<TitleId>` 的根目录。

2. 在根目录中，创建名为 `game.txt` 的文件，并在其中写入以下 JSON。将占位符值替换为你的包的标识名称和包完整名称。

   ```json theme={null}
   {
     "Title": "<IdentityName>",
     "Version": "<PackageFullName>"
   }
   ```

3. 将传递给 MakePkg 的确切布局文件复制到根目录中。例如，复制 `layout.xml`。

4. 在根目录下，为每个 EXE 和 DLL 重新创建其在包中的目录路径。

5. 在每个已打包的 EXE 或 DLL 所在的位置，创建一个与该二进制文件名称完全相同（包括 `.exe` 或 `.dll` 扩展名）的目录。

6. 将该二进制文件及其完全匹配的 PDB 文件复制到该目录中。

7. 验证符号包的结构。例如，包根目录中包含 `MyGame.exe` 和 `Resources\MyDll.dll` 的包具有以下结构：

   ```text theme={null}
   <PackageFullName>_<TitleId>\
   |-- game.txt
   |-- layout.xml
   |-- MyGame.exe\
   |   |-- MyGame.exe
   |   `-- MyGame.pdb
   `-- Resources\
       `-- MyDll.dll\
           |-- MyDll.dll
           `-- MyDll.pdb
   ```

   <img src="https://mintcdn.com/microsoft-4404708b/5dcGPrKRKcrgaGe7/images/packaging/symbol-bundle-folder-structure.png?fit=max&auto=format&n=5dcGPrKRKcrgaGe7&q=85&s=c2ba7549a824cbe4bfbfa16c5a8a3aa8" alt="符号包在 Windows 文件资源管理器中的视图，每个二进制文件与其匹配的 PDB 位于以该二进制文件命名的文件夹中。" width="581" height="328" data-path="images/packaging/symbol-bundle-folder-structure.png" />

8. 创建一个 ZIP 存档，其顶级目录为 `<PackageFullName>_<TitleId>`。

9. 在 Partner Center 中，将该 ZIP 存档作为对应游戏和包的符号包上传。


## Related topics

- [IP 封禁系统](/zh-CN/services/playfab/player-progression/player-data/ip-bans.md)
- [XBOX 主机游戏打包入门](/zh-CN/build/core-features/common/packaging/overviews/packaging-getting-started-for-console.md)
- [针对 PC 的 MSIXVC2 打包入门](/zh-CN/build/core-features/common/packaging/overviews/packaging-getting-started-for-PC-msixvc2.md)
- [使用 MSIXVC 工具打包 PC 游戏入门](/zh-CN/build/core-features/common/packaging/overviews/packaging-getting-started-for-PC.md)
- [XBOX services 配置 ID（面向托管合作伙伴）](/zh-CN/services/xbox-services/fundamentals/portal-config/live-service-config-ids-mp.md)
