Visual Studio 2017 (15.3) update

Since the release of Visual Studio 2017 in March, there have been two minor updates (15.1 and 15.2) per the new release rhythm. The first update (15.1) integrated the Windows 10 Creators Update SDK (15063), and the second update (15.2) included fixes for the IDE and tools. Neither of these updates included significant changes to the C/C++ compiler beyond a few specific hotfixes. The first major revision to the Visual C++ 19.1 compiler and libraries is now available with the latest update: Visual Studio 2017 (15.3).

If you already have VS 2017 installed, run the "Visual Studio Installer" application on your system to apply the update. If you don't yet have VS 2017 installed, you can download the latest installer from here.

The latest VS 2017 Redistribution packages are available (x86, x64), as well as the Remote Debugging Tools (x86, x64). For more on the Visual Studio 2017 (15.3) update, see the release notes.

Note:  The Lightweight Solution Load option that does a partial load of projects for large C++ solutions is included in this update.

Compiler and CRT

VS 2017 (15.3) inclues a new version of the C/C++ compiler (19.11.25506). See this blog post for details on the latest Standard conformance and language/library fixes. There are a few new warnings--a few of which are currently off-by-default but quite useful for portability--detailed in this blog post. The latest update also includes support for AVX-512 intrinsics. There's also some new behavior for /permissive- with two-phase name lookup.

The /std switch can be specified with a new VC++ project element <LanguageStandard> instead of having to use <AdditionalOptions> starting with the 15.3 update.

Note: Per this blog post, the _MSC_VER value is now 1911 instead of 1910.

The C/C++ Runtime (14.11.25325) is included in this update. Remember that VS 2015 and VS 2017 share the same runtime redistributable binaries and that VS 2015 Update 3 is binary compatible with VS 2017--code or static library built with one can be linked to the other--, so this is the latest version for both.

The C++ Core Guidelines checker has also been updated. See this blog post as well as this one.

directx-vs-templates: The VS 2017 (15.3) includes a fix with my Direct3D game templates if using them on a system without VS 2015 installed side-by-side.

GitHub: I've done new releases of DirecX Tool Kit (DX11 / DX12), DirectXTex, DirectXMesh, and UVAtlas which have been updated to build correctly with VS 2017 when using the 15.3 update--I make use of /permissive- for these projects.

Related: Visual Studio 2017 RTM

Comments (4)

  1. Jey says:

    Congratulations!! Great news. Do you guys got standalone update file for Visual Studio 2017 Update 3?

    1. You can use the command line admin options to create an off-line cache of the Visual Studio install. See

  2. James Wilsom says:

    Shouldn’t bumping the C++ runtime also warrant bumping the toolset version? This broke a lot of things in our development process between people who hadn’t yet upgraded VS2017 15.2 -> 153. Increasing the MSVC number and corresponding runtime was a pretty breaking change more inline with upgrade from VS2015 -> VS2017, but even that allowed us to define the toolset we wanted to keep from breaking people. We had to rollback to 15.2, but we couldn’t. Had to uninstall VS2017 completely and reinstall. Thanks

    1. As noted in the Visual C++ team blog, the Visual C/C++ Runtime team wanted to keep the VS 2015 Runtime as VS 2017 is a relatively minor update to the toolset, so they made the VS 2015 Update 3 and VS 2017 C/C++ Runtime binary compatible. Essentially VS 2017 still uses the VS 2015 C/C++ Runtime. Part of this is the result of the Universal CRT refactor where the Visual C++ portion of the C/C++ Runtime is not changing at the same rate as it used to.

      Note that the #pragma detect_mismatch is hardcoded to “1900” instead of being _MSC_VER in order to keep the VS 2017 compiler (1910) and the VS 2017 15.3 compiler (1911) binary compatible with the VS 2015 C/C++ Runtime.

Skip to main content