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

# Visual Studio 2022 GDK 支持说明

> Visual Studio 2022 Microsoft Game Development Kit (GDK) 支持说明

本文介绍 GDK 对 Visual Studio 2022 的支持情况。Visual Studio 2022 [17.12 或 17.14 版本](https://learn.microsoft.com/visualstudio/releases/2022/servicing-vs2022)支持 Microsoft Game Development Kit (GDK) 开发。根据 [Visual Studio 产品生命周期与服务](https://learn.microsoft.com/visualstudio/productinfo/vs-servicing)，17.12 和 17.14 版本提供长期支持通道。

> [!NOTE]
>
> Visual Studio 2022 的 17.0 至 17.11 版本自 2026 年 1 月起已停止支持。

## 安装 Visual Studio 2022

GDK 支持使用 Visual Studio 2022 的 **Professional** 版或 **Enterprise** 版进行开发。不支持 Community 版。

> [!NOTE]
>
> 基于 ARM 的设备不支持 GDK 的 Visual Studio 扩展 (VSIX) 组件。若要使用 GDK 的 Visual Studio 项目模板、属性页和调试扩展，请在基于 x64 的开发 PC 上安装 GDK。

安装 Visual Studio 2022 时，请在安装过程中选择 **使用 C++ 的游戏开发** 工作负载，如下面的截图所示。

![在 Visual Studio 2022 中安装“使用 C++ 的游戏开发”工作负载](https://mintcdn.com/microsoft-4404708b/6TXzXmujKayly5Sf/images/gdk/tools/vs2022_workloads_game_development.png?fit=max\&auto=format\&n=6TXzXmujKayly5Sf\&q=85\&s=323e575e103c803e945a7b6eee4e0d3d)

除了游戏开发所需的核心 C++ 工具之外，请确保安装 **Windows 10 SDK (22000)** 组件，以提供使用 GDK 构建游戏所需的 Windows SDK。你也可以使用 *Windows SDK for Windows 11, Version 22H2 (10.0.22621)* 或 *Windows SDK for Windows 11, Version 24H2 (10.0.26100)*，但它们并非必需。

虽然并非必需，但安装 **使用 C++ 的桌面开发** 工作负载可以提供更多有用的工具和示例。例如，如果你使用 Clang/LLVM 工具集进行构建，则需要 **使用 C++ 的桌面开发**。

## 安装可选工具集

**使用 C++ 的游戏开发** 工作负载会安装 Visual Studio 2022 版本的 MSVC 生成工具（版本 **v143**）。除 **v143** 工具集外，GDK 还支持使用以下工具集进行构建：

* v142（Visual Studio 2019 工具集）
* 面向 Windows 的 C++ Clang 工具

这种灵活性使你能够在不更新工具集的情况下升级到 Visual Studio 2022 IDE。

你可以在 **使用 C++ 的桌面开发** 工作负载下找到可选工具集，或者在 Visual Studio 安装对话框中搜索 **单个组件** 找到它们。

![在安装 Visual Studio 2022 时选择可选工具集](https://mintcdn.com/microsoft-4404708b/6TXzXmujKayly5Sf/images/gdk/tools/vs2022_optional_toolsets.png?fit=max\&auto=format\&n=6TXzXmujKayly5Sf\&q=85\&s=dabf5dc04ac037d980dc20784cf60caa)

## 为项目选择工具集

通过项目属性页中的 **平台工具集** 属性来指定要用于项目的工具集。

![指定生成项目时要使用的工具集](https://mintcdn.com/microsoft-4404708b/6TXzXmujKayly5Sf/images/gdk/tools/vs2022_specify_a_toolset.png?fit=max\&auto=format\&n=6TXzXmujKayly5Sf\&q=85\&s=1ea3eed598eb3d7937b59384b6f5a563)

也可以在项目文件中手动指定 **PlatformToolset** 属性，如以下属性组所示。

```xml theme={null}
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Gaming.Xbox.Scarlett.x64'" Label="Configuration">
  <ConfigurationType>Application</ConfigurationType>
  <PlatformToolset>v143</PlatformToolset>
  <UseDebugLibraries>true</UseDebugLibraries>
  <CharacterSet>Unicode</CharacterSet>
  <EmbedManifest>false</EmbedManifest>
  <GenerateManifest>false</GenerateManifest>
</PropertyGroup>
```

## 使用 Visual Studio 2022 调试 XBOX 项目

要使用 Visual Studio 2022 进行调试，请使用 2022 年 3 月（或更新版本）的 GDK 生成要调试的游戏。这是因为这些版本 GDK 中随附的 Game OS 包含使用 Visual Studio 2022 进行调试所需的二进制文件。如果你尝试使用 Visual Studio 2022 针对更旧的 Game OS 进行调试，将会看到以下错误消息。

![尝试使用 Visual Studio 2022 调试器针对早于 2022 年 3 月 GDK 中的 Game OS 版本进行调试](https://mintcdn.com/microsoft-4404708b/6TXzXmujKayly5Sf/images/gdk/tools/vs_2022_old_gamos_debug_error.png?fit=max\&auto=format\&n=6TXzXmujKayly5Sf\&q=85\&s=1c2d4c8fd1be70615c84d85d0ce2f216)

当你在 Visual Studio 2022 中使用 **调试** 菜单下的 **附加** 对话框时，在 **连接类型** 下拉列表中选择 **XBOX Direct Connection**，并在 **连接目标** 文本框中输入主机的 Host IP 地址。使用 [xbconnect](https://docs.xbox.com/zh-CN/tools/tools-console/commandlinetools/xbconnect.md) 命令行工具确定 Host IP。

![使用 Visual Studio 2022 附加对话框](https://mintcdn.com/microsoft-4404708b/6TXzXmujKayly5Sf/images/gdk/tools/vs2022_attach_dialog.png?fit=max\&auto=format\&n=6TXzXmujKayly5Sf\&q=85\&s=71f8447875f069e11920e2d3a8ae12c5)

> [!NOTE]
>
> 这些值与使用 Visual Studio 2019 附加时输入的值不同。使用 Visual Studio 2019 时，连接类型是 **Remote no authentication**，IP 地址是主机的 System IP 地址。

## Visual Studio 2022 服务模型

Visual Studio 2022 引入了新的服务模型，你可以选择一个服务基线，然后只获取该基线的更新。这一新模型取代了之前 Visual Studio 版本中强烈鼓励使用最新可用版本的服务模型。有关更多详细信息，请参阅 [Visual Studio 产品生命周期与服务](https://learn.microsoft.com/lifecycle/products/visual-studio-2022)。

## 报告 Bug

对于 **Visual C++ 编译器** 的 Bug 报告，请尽量通过 Visual Studio 的 *报告问题...* 提交。有关更多信息，请参阅 [Microsoft Docs](https://learn.microsoft.com/visualstudio/ide/how-to-report-a-problem-with-visual-studio) 以及[开发者社区](https://aka.ms/feedback/report?space=62) 网站。请务必阅读[此页面](https://aka.ms/compilerbug)，了解如何为编译器创建高质量的 Bug 报告。

> [!NOTE]
>
> 如果重现问题需要私密信息，你可以在标记为 “Microsoft only” 的公开报告问题中添加评论。

对于 **clang/LLVM for Windows 编译器** 的 Bug 报告，请使用 [https://bugs.llvm.org/](https://bugs.llvm.org/)

对于 **Microsoft Standard C++ Library**（也称为 STL）的 Bug 报告，请使用 [https://github.com/microsoft/STL/issues](https://github.com/microsoft/STL/issues)

一如既往，如遇需要升级处理的紧急问题，可随时联系你的 *Microsoft 联系人*。

## 已知问题

* Game OS 不支持 C++20 P0355R7 \<chrono> *Calendars And Time Zones* 中新增的 `std:chrono` 时区功能，因为它未在 XVD 映像中包含 `icu.dll`、`icuin.dll`、`icuuc.dll` 或相关数据文件。如果你使用这些函数，应用将在运行时抛出 C++ 异常。PR0355R7 中的日历功能受支持。

## 另请参阅

[Visual Studio](https://docs.xbox.com/zh-CN/tools/tools-console/visualstudio/visualstudio.md)

[面向 XBOX 开发的 Visual Studio 项目模板](https://docs.xbox.com/zh-CN/tools/tools-console/visualstudio/durango-visual-studio-templates.md)

[面向 XBOX 开发的 Visual Studio 属性](https://docs.xbox.com/zh-CN/tools/tools-console/visualstudio/durango-property-pages.md)

[使用 Visual Studio 调试 XBOX 项目](https://docs.xbox.com/zh-CN/tools/tools-console/visualstudio/debugging-with-visualstudio.md)


## Related topics

- [Visual Studio 2022 支持说明](https://docs.xbox.com/zh-CN/tools/tools-pc/visualstudio/gr-vs-2022-support-notes.md)
- [Visual Studio 2019 支持说明](https://docs.xbox.com/zh-CN/tools/tools-pc/visualstudio/gr-vs-2019-support-notes.md)
- [Visual Studio 2019 GDK 支持说明](https://docs.xbox.com/zh-CN/tools/tools-console/visualstudio/vs-2019-support-notes.md)
- [Visual Studio 2026 GDK 支持说明](https://docs.xbox.com/zh-CN/tools/tools-console/visualstudio/vs-2026-support-notes.md)
- [Visual Studio(目录)](https://docs.xbox.com/zh-CN/tools/tools-pc/visualstudio/gr-visualstudio-toc.md)
