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

# Visual Studio 2019 GDK support notes

> Visual Studio 2019 Microsoft Game Development Kit (GDK) support notes

This article describes Microsoft Game Development Kit (GDK) support for Visual Studio 2019. Visual Studio 2019 [version 16.11](https://learn.microsoft.com/visualstudio/releases/2019/servicing-vs2019) supports GDK development.

<Note>
  Visual Studio 2019 versions 16.0 through 16.10 are out of support as of October 2022. Version 16.11 is also out of main-stream support.
</Note>

## Installing Visual Studio 2019

The GDK supports development with either the **Professional** edition or the **Enterprise** edition of Visual Studio 2019. The Community edition isn't supported. When installing Visual Studio 2019, select the **Game development with C++** workload during setup as shown in the following screenshot.

<img src="https://mintcdn.com/microsoft-4404708b/NsRUQ49ZRpXgoZ9R/images/gdk/tools/vs_workloads_game_devlopment.png?fit=max&auto=format&n=NsRUQ49ZRpXgoZ9R&q=85&s=4fb4b71036246e053fa20ee3270bb27b" alt="Screenshot of Game Development with C++ workload dialog box" width="403" height="84" data-path="images/gdk/tools/vs_workloads_game_devlopment.png" />

In addition to the core C++ tools that you need for game development, make sure the **Windows 10 SDK (22000)** component is installed to provide the Windows SDK required to build games with the GDK. The *Windows SDK for Windows 11, Version 22H2* (10.0.22621), or *Windows SDK for Windows 11, Version 24H2* (10.0.26100) can also be used, but isn't required.

While it's not required, installing the **Desktop development with C++** workload provides more tools and samples that you might find helpful.

Version **v142** of the MSVC build tools is installed with the Game development with C++ workload.

> The Visual Studio 2017 `v141` toolset is no longer supported as of the October 2024 release.

### clang/LLVM for Windows (ClangCl) project support

Visual Studio 2019 also supports clang/LLVM for Windows development. This support requires installing **C++ Clang-cl for Windows** and **C++ Clang-cl for v142 build tools (x64/x86)**, which are individual components.

For more information, see the [Microsoft Game Development Kit (GDK)](/tools/tools-console/visualstudio/vs-clang) Clang article and the [Microsoft Docs](https://learn.microsoft.com/cpp/build/clang-support-msbuild).

### Build Tools edition

Use **Build Tools for Visual Studio 2019** to build with the Microsoft GDK headers, libraries, and tools by following the [Build With/Out Install instructions](/build/console-features/build-without-install/withoutinstall-overview).

* Use the workload *Desktop Development with C++* which installs the Visual C++ compiler for PlatformToolset `v142`. You can also select components for `ClangCl` support per the instructions earlier in this article.
* Install the Windows SDK or use it as a [NuGet](https://www.nuget.org/packages/Microsoft.Windows.SDK.CPP.x64/) package.

> The Build Tools edition doesn't support extensions, so you can't install the Microsoft GDK's VSIX packages for the Build Edition. This limitation means it doesn't support deployment or debugging, although you can use command-line tools.

## Migrating existing Visual Studio 2017 projects to Visual Studio 2019

In most cases, the upgrade wizard provided with Visual Studio can migrate your project to Visual Studio 2019 without any other changes. When you open a Visual Studio 2017 project in Visual Studio 2019, you see the following **Review Solution Actions** dialog box that prompts you to upgrade. To upgrade the project, select **OK**.

<img src="https://mintcdn.com/microsoft-4404708b/6TXzXmujKayly5Sf/images/gdk/tools/vs_convert_2017_to_2019.png?fit=max&auto=format&n=6TXzXmujKayly5Sf&q=85&s=77e8e2059ed810747afecaea859027a2" alt="Screenshot of the Review Solution Actions dialog box of the upgrade wizard in Visual Studio 2019, showing retargeting options for a Visual Studio 2017 project" width="669" height="371" data-path="images/gdk/tools/vs_convert_2017_to_2019.png" />

You can also choose to use the Visual Studio 2019 IDE without upgrading your build tools. To do so, select **Cancel** in the **Review Solution Actions** dialog box.

### Manually upgrading projects to Visual Studio 2019

If you want to upgrade your project by directly editing your project files (.vcxproj), make the following changes.

1. Change all instances of `PlatformToolset` from `v141` to `v142`. The following example shows how to make this change.

```xml theme={null}
    <PlatformToolset>v141</PlatformToolset>
    ...
    <PlatformToolset>v142</PlatformToolset>
```

1. Rebuild the project.

## Using specific versions

By default, the Visual Studio Installer always downloads the latest release. In an Enterprise setting, you can control the specific version by using an offline layout. For more information, see [Controlling updates to Visual Studio deployments](https://learn.microsoft.com/visualstudio/install/controlling-updates-to-visual-studio-deployments). That article also provides information about removing the **VS notification** icon.

Download specific versions of Visual Studio 2019 from [Visual Studio 2019 Releases](https://learn.microsoft.com/visualstudio/releases/2019/history).

## Known issues

* DirectXMath `*IsNan` functions can fail with Visual Studio 2019 when built with `/fp:fast`. The fix is to use Visual Studio 2019 (16.3 or later). Otherwise, you can work around the issue by placing `#pragma float_control` statements around the use of those functions.
* Only the 64-bit native compiler toolset is supported for GDK development. In a Visual C++ `vcxproj`, set this toolset in the globals properties:

```xml theme={null}
<PropertyGroup Label="Globals">
  <PreferredToolArchitecture>x64</PreferredToolArchitecture>
</PropertyGroup>
```

* Precompiled headers have known issues in clang/LLVM for Windows versions earlier than v11. Depending upon your PCH and C++ template usage, you might need to add `-fno-pch-instantiate-templates` to successfully build.
* [.NET Core 2.1 updates delivered through Microsoft Update](https://devblogs.microsoft.com/dotnet/net-core-updates-coming-to-microsoft-update/) can block GDK installation. For more information about this issue, see the [.NET Core 2.1 end of support notification](https://devblogs.microsoft.com/dotnet/net-core-2-1-will-reach-end-of-support-on-august-21-2021/). To resolve this issue:
  * Run Visual Studio Installer
  * Select the **Modify** button for Visual Studio 2019
  * Select the **Individual** components tab and remove the [.NET Core 2.1 Runtime (LTS) component](https://learn.microsoft.com/visualstudio/install/workload-component-id-vs-enterprise)
  * Retry uninstalling and reinstalling the GDK

## Reporting bugs

Report bugs for the **Visual C++ compiler** (if possible) through Visual Studio *Report a Problem...*. See [Microsoft Docs](https://learn.microsoft.com/visualstudio/ide/how-to-report-a-problem-with-visual-studio) and the [Developer Community](https://aka.ms/feedback/report?space=62) website. For details on creating a good bug report for the compiler, see [this page](https://aka.ms/compilerbug).

<Note>
  You can add a comment to a public report issue marked as "Microsoft only" if other NDA information is required to reproduce the issue.
</Note>

For bug reporting for the **clang/LLVM for Windows compiler**, use [https://bugs.llvm.org/](https://bugs.llvm.org/)

For bug reports for the **Microsoft Standard C++ Library** (also known as STL), use [https://github.com/microsoft/STL/issues](https://github.com/microsoft/STL/issues)

As always, feel free to reach out to your *Microsoft Representative* for critical issues that need escalation.

## See also

[Visual Studio](/tools/tools-console/visualstudio/visualstudio) [Visual Studio Product Lifecycle and Servicing](https://learn.microsoft.com/visualstudio/releases/2019/servicing-vs2019)


## Related topics

- [Visual Studio 2019 support notes](/tools/tools-pc/visualstudio/gr-vs-2019-support-notes.md)
- [Visual Studio 2026 GDK support notes](/tools/tools-console/visualstudio/vs-2026-support-notes.md)
- [Visual Studio 2022 GDK support notes](/tools/tools-console/visualstudio/vs-2022-support-notes.md)
- [Visual Studio 2022 support notes](/tools/tools-pc/visualstudio/gr-vs-2022-support-notes.md)
- [Visual Studio (contents)](/tools/tools-pc/visualstudio/gr-visualstudio-toc.md)
