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

# 提取 Microsoft Game Development Kit (GDK) 安装负载

> 介绍获取已提取的 Microsoft Game Development Kit (GDK) 安装负载的过程。

本文档介绍如何获取无需安装即可使用的已提取 Microsoft Game Development Kit (GDK)。本部分说明如何针对 GDK 和 Windows SDK 执行此操作。此过程面向高级用户。

> [!NOTE]
>
> 在大多数情况下，此过程并不能取代安装 Microsoft Game Development Kit (GDK) 的需要。此过程支持以下场景：
>
> 1. 提取头文件和库，以便在构建过程中使用。
> 2. 提取 Sideload 文件夹，以便无需安装完整的 Microsoft Game Development Kit (GDK)，即可从指定的 Microsoft Game Development Kit (GDK) 运行 [xbprovision（NDA 主题）](https://learn.microsoft.com/en-us/gaming/gdk/docs/tools/tools-console/commandlinetools/xbprovision)。
>
> 以这种方式提取安装负载后，可以运行部分 Microsoft Game Development Kit (GDK) 工具，但这种做法未获得官方支持，你可能会遇到问题。

## 下载已提取的 Microsoft Game Development Kit

已提取的 Microsoft Game Development Kit (GDK) 是面向高级用户的一个选项，可以将特定文件集成到构建系统中，而无需安装完整的 Microsoft Game Development Kit (GDK)。已提取的 Microsoft Game Development Kit (GDK) 在 [XBOX Developer Downloads](https://aka.ms/gdkdl) 站点上作为单独的下载选项提供。该下载选项的标题中带有 Extracted 一词，以便与 GDK 安装程序下载选项区分开来。

> [!TIP]
>
> 使用此下载选项可以跳过 Microsoft Game Development Kit 的手动提取过程。这是推荐的选项。

## 手动提取 Microsoft Game Development Kit

除了下载已提取的 Microsoft Game Development Kit (GDK) 之外，你还可以从常规 Microsoft Game Development Kit (GDK) 安装程序中手动提取文件。下载常规 Microsoft Game Development Kit (GDK) 后，可以使用 Windows Installer (msiexec.exe) 提取每个安装程序包，以访问其中的各个文件。

> [!TIP]
>
> 以下过程展示了 Windows Installer (msiexec.exe) 的一种特定用法。有关 msiexec.exe 的详细信息，请参阅 [Windows Installer](https://learn.microsoft.com/windows/desktop/Msi/windows-installer-portal)。

### 提取所有 Microsoft Game Development Kit (GDK) MSI 的内容（使用 ExtractXboxOneDKs.ps1）

1. 在 [XBOX Developer Downloads](https://aka.ms/gdkdl) 站点上下载 Microsoft Game Development Kit 安装程序。或者，从 [GitHub 存储库](https://github.com/microsoft/GDK)下载公开版 Microsoft Game Development Kit (GDK) 安装程序（仅支持 PC 开发）。
   下载的文件名称类似于 *GDK\_03\_2022.zip*。请记下它在计算机上的位置。
2. 解压本地 .zip 文件的内容。
3. 打开 PowerShell 提示符，导航到内容解压目标文件夹中的 **SetupScripts** 目录（例如 C:\GDKDownload\SetupScripts）
   * 此目录中的 ExtractXboxOneDKs.ps1 脚本可用于提取 GDK。其用法为：
     * `.\ExtractXboxOneDKs.ps1 -SourcePath <MSI_Source_Folder> -TargetDirectory <Target_Directory>`
     * 例如，SourcePath 是 .zip 文件的解压位置（例如 C:\GDKDownload）。TargetDirectory 是提取内容的存放位置（例如 C:\ExtractedGDK\220300）
4. 运行 ExtractXboxOneDKs.ps1 脚本后，提取的文件将位于目标目录中（例如 C:\ExtractedGDK\220300）
5. 导航到目标目录，然后将提取的 GDK 文件复制到构建系统所需的位置。

> [!NOTE]
>
> 提取过程中，目标目录会包含一组 .msi 文件和一个 Windows Kits 文件夹。这些内容应忽略，可以删除。提取目标目录中唯一需要保留的文件夹是 Microsoft GDK 文件夹。

### 提取所有 Microsoft Game Development Kit (GDK) MSI 的内容（手动）

1. 解压 GDK 后（上一节中的步骤 1-2），可以使用 Windows Installer (msiexec.exe) 提取每个安装程序包，以访问其中的各个文件。
2. 在命令提示符窗口中，导航到包含从 .zip 文件解压出的文件的文件夹，然后运行以下命令行：\


   ```cmd theme={null}
   for /F "delims=" %G in ('dir /b /s "installation_folder\*.msi"') DO (
   start /wait msiexec.exe /a "%G" TARGETDIR="msi_extraction_path" /qb
   )  
   ```

   其中，**installation\_folder** 是 GDK 下载文件所在的路径，**msi\_extraction\_path** 指定要将 Windows Installer (.msi) 文件中的文件提取到的文件夹。例如：\


   ```cmd theme={null}
   for /F "delims=" %G in ('dir /b /s "C:\GDKDownload\*.msi"') DO (
   start /wait msiexec.exe /a "%G" TARGETDIR="C:\ExtractedGDK\220300\" /qb
   )  
   ```

   > [!NOTE]
   >
   > 如果在脚本中而不是直接在命令行中使用此代码示例，则需要将 %G 替换为 %%G。
3. 导航到 msi\_extraction\_path，然后将提取的 GDK 文件复制到构建系统所需的位置。

## 提取 Windows SDK

手动提取 Windows SDK 安装负载是面向高级用户的一个选项，可以将特定文件集成到构建系统中，而无需安装完整的 Windows SDK。只要系统上已安装 Windows SDK，使用已提取的 Microsoft Game Development Kit (GDK) 时就无需执行此步骤。

### 提取所有 Windows SDK MSI 的内容（使用 ExtractXboxOneDKs.ps1）

> [!NOTE]
>
> 从 2023 年 10 月 GDK 起，GDK 需要 Windows 11 SDK（版本 10.0.22000.0）或更高版本。

1. 从 [Windows 开发人员中心](https://developer.microsoft.com/windows/downloads/windows-sdk/)下载 Windows SDK 安装程序。下载的文件名称类似于 winsdksetup.exe。请记下它在计算机上的位置。

2. 打开命令提示符，在 exe 的下载目录中运行 **winsdksetup.exe /layout C:\WinSDKDownload**（这会从 exe 中提取 msi 文件）。

3. 逐步完成 UI，保持所有复选框处于选中状态，然后让它下载所有文件。

4. 导航到 **C:\WinSDKDownload**，确认 .msi 文件存在。

   > [!TIP]
   >
   > 或者，你也可以下载 Windows SDK .ISO 并装载它。其中包含与步骤 1-4 生成的相同的 .msi 文件。

5. 使用上文 **提取所有 Microsoft Game Development Kit (GDK) MSI 的内容（使用 ExtractXboxOneDKs.ps1）** 中提到的脚本，将 SourcePath 指向 msi 文件夹（例如 C:\WinSDKDownload），将 TargetDirectory 指向另一个用于存放提取内容的文件夹（例如 C:\ExtractedWinSDK）。

   > [!NOTE]
   >
   > 由于所含文件的路径较长，建议将源目录和目标目录（仅用于提取）的长度限制在 45 个字符以内（包括驱动器号）。提取完成后可以再移动它们。**文件夹路径超过 45 个字符会导致提取失败**，因为超出了最大文件路径长度。

6. 运行 ExtractXboxOneDKs.ps1 脚本后，提取的文件将位于目标目录中（例如 C:\ExtractedWinSDK）

7. 导航到目标目录，然后将提取的 Windows SDK 文件复制到构建系统所需的位置。

   > [!NOTE]
   >
   > 提取完成后，目标目录中会有许多文件和文件夹。本示例中供构建系统引用的是 Windows Kits\10 文件夹。根据所需操作，可能还需要其他文件夹。

### 提取所有 Windows SDK MSI 的内容（手动）

1. 从 winsdksetup.exe 获取一组 .msi 文件后（上一节中的步骤 1-4），可以使用 Windows Installer (msiexec.exe) 提取每个安装程序包，以访问其中的各个文件。
2. 在命令提示符窗口中，导航到包含从 .zip 文件解压出的文件的文件夹，然后运行以下命令行：\


   ```cmd theme={null}
   for /F "delims=" %G in ('dir /b /s "installation_folder\*.msi"') DO (
   start /wait msiexec.exe /a "%G" TARGETDIR="msi_extraction_path" /qb
   )  
   ```

   其中，**installation\_folder** 是 Windows SDK 下载文件所在的路径，**msi\_extraction\_path** 指定要将 Windows Installer (.msi) 文件中的文件提取到的文件夹。例如：\


   ```cmd theme={null}
   for /F "delims=" %G in ('dir /b /s "C:\WinSDKDownload\*.msi"') DO (
   start /wait msiexec.exe /a "%G" TARGETDIR="C:\ExtractedWinSDK" /qb
   )  
   ```

   > [!NOTE]
   >
   > 如果在脚本中而不是直接在命令行中使用此代码示例，则需要将 %G 替换为 %%G。
3. 导航到 msi\_extraction\_path，然后将提取的 Windows SDK 文件复制到构建系统所需的位置。

## 支持多个已提取 Microsoft Game Development Kit (GDK) 版本的推荐布局

提取 Microsoft Game Development Kit 时，假定此文件夹将位于共享位置或源代码管理系统中，以便在构建游戏时访问。在某些场景下，可能需要使用多个版本的 Microsoft Game Development Kit (GDK)。在这种场景下，我们对多个已提取 Microsoft Game Development Kit (GDK) 版本的布局建议如下：

* ...\ExtractedGDK\211000\Microsoft GDK...
* ...\ExtractedGDK\220300\Microsoft GDK...

这样可以让每个版本都拥有完整的负载。我们建议你使用构建环境变量在版本之间切换，以定义构建编译过程中使用的版本。

## 另请参阅

[在不安装 Microsoft Game Development Kit (GDK) 的情况下配置构建环境](https://learn.microsoft.com/en-us/gaming/gdk/docs/gdk-dev/console-dev/usingwithoutinstall/build-environment-withoutinstall)

[在不安装的情况下使用 Microsoft Game Development Kit (GDK)](https://docs.xbox.com/zh-CN/build/console-features/build-without-install/gc-usingwithoutinstall-toc.md)


## Related topics

- [在不安装的情况下使用 Microsoft Game Development Kit（目录）](https://docs.xbox.com/zh-CN/build/console-features/build-without-install/gc-usingwithoutinstall-toc.md)
- [在不安装 Microsoft Game Development Kit (GDK) 的情况下使用工具](https://docs.xbox.com/zh-CN/build/console-features/build-without-install/tools-usage-withoutinstall.md)
- [Microsoft Game Development Kit (GDK) 发行说明](https://docs.xbox.com/zh-CN/announcements/gdk/release-notes.md)
- [Microsoft Game Development Kit (GDK) 新增功能](https://docs.xbox.com/zh-CN/announcements/gdk/whats-new.md)
- [使用 Microsoft Game Development Kit (GDK) 工具安装并启动 PC 游戏](https://docs.xbox.com/zh-CN/tools/tools-pc/launching-on-pc.md)
