Cart0

Guide · 6 min read

C++ Build Tools Version: MSVC 14.51, Toolsets and How to Check

Updated

C++ Build Tools Version: MSVC 14.51, Toolsets and How to Check

Short answer: The C++ build tools version that Visual Studio 2026 uses by default is MSVC Build Tools 14.51, with 14.52 as the preview and 14.50 still available. Check yours with cl in a Developer Command Prompt, or open Microsoft.VCToolsVersion.default.txt. We'd confirm in the Visual Studio Installer under Individual components.

The current C++ build tools version from Microsoft is MSVC Build Tools 14.51, the default toolset in Visual Studio 2026 since version 18.6, with 14.52 in preview and 14.50 still installable. To check yours, open a Developer Command Prompt and run cl, or read the Microsoft.VCToolsVersion.default.txt file.

MSVC Build Tools _MSC_VER Status in the Visual Studio Installer Shipped with
14.52 1952 Preview toolset Visual Studio 2026, preview option
14.51 1951 Default toolset Visual Studio 2026 version 18.6
14.50 1950 Long-term release, Individual components Visual Studio 2026 version 18.0
14.44 1944 Last Visual Studio 2022 toolset Visual Studio 2022 version 17.14

Current C++ build tools version in Visual Studio 2026

Short answer: 14.51 is what new C++ projects get by default. Platform toolset stays v145 for MSBuild projects in Visual Studio 2026.

What changed is the rhythm. Since Visual Studio 2026 the MSVC version no longer follows the Visual Studio version, so the compiler’s minor number can stay the same across several IDE updates. The installer then offers three kinds of toolset side by side:

  • A preview toolset, refreshed with each update. Right now that’s 14.52.
  • The default toolset. 14.51.
  • Older toolsets that still get fixes, such as 14.50.

We’d treat the first table as a snapshot. Microsoft moves the default forward, and an upgrade can replace 14.50 with 14.51 on your machine. The MSVC compiler versioning page is where the current list lives.

New in 14.51? More C++23 and C++20 features. The flat_map and flat_set headers. A reworked regex, plus NEON-vectorized STL algorithms on ARM64. Binary compatibility with code from Visual Studio 2015 onwards stays.

C++ build tools version table: Visual Studio 2015 to 2026

Old projects name a platform toolset, new ones a Build Tools number. This table maps them:

C++ build tools version table: platform toolset, MSVC Build Tools and _MSC_VER from Visual Studio 2015 to 2026
Illustration: which platform toolset, MSVC Build Tools version and _MSC_VER each Visual Studio release uses.
Visual Studio Platform toolset MSVC Build Tools _MSC_VER
Visual Studio 2015 v140 14.0 1900
Visual Studio 2017 (15.0 to 15.9) v141 14.10 to 14.16 1910 to 1916
Visual Studio 2019 (16.0 to 16.11) v142 14.20 to 14.29 1920 to 1929
Visual Studio 2022 (17.0 to 17.14) v143 14.30 to 14.44 1930 to 1944
Visual Studio 2026 (18.0 onwards) v145 14.50, 14.51, 14.52 1950, 1951, 1952

One quirk in the 2019 line. Versions 16.8 and 16.9 share one _MSC_VER value. So do 16.10 and 16.11. Only _MSC_FULL_VER tells them apart.

Anything older? Visual Studio 2013 is 1800 and 12.0, and the jump to 1900 marked the start of the binary-compatible era.

Toolset, Build Tools and compiler: three different numbers

Easy to mix up. One install, three version numbers:

  • Platform toolset, like v143 or v145. What a .vcxproj file stores.
  • MSVC Build Tools version, like 14.51. The folder name under VC\Tools\MSVC and what the installer shows.
  • Compiler version, like 19.51. What cl.exe prints in its banner.

The compiler number has four fields: major, minor, build, revision. Microsoft’s example is Visual Studio 2022 version 17.9, compiler 19.39.33519. In code that becomes:

_MSC_VER      = 1939
_MSC_FULL_VER = 193933519
_MSC_BUILD    = 0

So 1951 in _MSC_VER lines up with Build Tools 14.51 and compiler 19.51. Want to branch on a servicing release in code? We’d test _MSC_FULL_VER, not _MSC_VER.

How to check your C++ build tools version

Pick whichever fits where you are.

How to check your C++ build tools version with cl, the default toolset file, the MSVC folder or the installer
Illustration: four places that show which MSVC build tools version is installed.

From a Developer Command Prompt. A plain Command Prompt won’t find the compiler, so use the Start menu shortcut for your Visual Studio. Then:

cl

The first line of output is the compiler banner with its version. Need every component’s version, linker included? This one lists them:

cl /Bv

From the file system. The default toolset is written in a small text file:

<vs-install-dir>\VC\Auxiliary\Build\Microsoft.VCToolsVersion.default.txt

Next to it, Microsoft.VCToolsVersion.Preview.txt names the preview toolset. Every installed toolset also has its own folder here:

<vs-install-dir>\VC\Tools\MSVC\

From the installer. Visual Studio Installer, Modify, Individual components, search for MSVC. Ticked entries such as MSVC Build Tools v14.50 for x64/x86 are installed.

Several Visual Studio installs on one box? vswhere ships with the installer and lists every instance it finds:

"C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe" -prerelease -format json

Install an older or preview MSVC toolset

Side-by-side installs are normal. In the Visual Studio Installer:

  1. Workloads tab, Desktop development with C++. That gives the default toolset.
  2. Installation details panel: the Preview entry of MSVC Build Tools for x64/x86.
  3. Individual components tab, search MSVC, tick the older version you need.

Only want the compiler without the IDE? Build Tools for Visual Studio 2026 is the separate download on visualstudio.microsoft.com/downloads. For scripted installs we’d use winget:

winget install -e --id Microsoft.VisualStudio.BuildTools
winget search Microsoft.VisualStudio.BuildTools --versions

Pinning an exact toolset in a .vsconfig file works by component ID. For 14.50 on x64/x86 that ID is:

Microsoft.VisualStudio.Component.VC.14.50.18.0.x86.x64

Entries marked as no longer serviced still show up for old projects. They get no fixes, and we’d move off them.

Pick the toolset for a build

Installed is one thing, used is another. Per build system:

  • Visual Studio project: Configuration Properties, General, MSVC Build Tools Version. Or set Use MSVC Build Tools Preview to Yes.
  • MSBuild on the command line: pass VCToolsVersion with the full folder name.
  • CMake: the toolset argument with a version substring.
  • vcpkg: the VCPKG_PLATFORM_TOOLSET_VERSION triplet variable.
  • Any other build system: start the prompt through vcvars64.bat with a version prefix.

The matching commands:

msbuild app.vcxproj /p:Platform=x64 /p:Configuration=Release /p:VCToolsVersion=14.50.35717
cmake -G "Visual Studio 18 2026" -T "version=14.50" ..
set(VCPKG_PLATFORM_TOOLSET_VERSION "14.50")
<vs-install-dir>\VC\Auxiliary\Build\vcvars64.bat -vcvars_ver=14.50

Toolset installed in another Visual Studio on the same PC? From version 18.8, EnableVCToolsVersionDiscovery in a Directory.Build.props file lets MSBuild find it there.

Stable, Insiders and how often the version changes

Two Visual Studio channels, same toolsets, different speed.

  • Stable channel: monthly updates, carries the latest released toolset as the default.
  • Insiders channel: preview toolsets refresh roughly every week.
  • Release candidates: they land on Insiders about a month before Stable.

Each update touches every toolset you have. The preview gets new features. The default and older ones get targeted bug fixes only, so a 14.50 build stays a 14.50 build. That’s why we’d pin the full folder version in CI, like 14.50.35717, and let developer machines float on the default.

Build Tools, Redistributable and Windows SDK are separate

Three downloads that sound alike:

  • MSVC Build Tools: compiler, linker, libraries. On the machine that builds.
  • Visual C++ Redistributable: the runtime DLLs. On the machine that runs the app.
  • Windows SDK: headers and libraries for Windows APIs, its own component in the installer.

A fuller .vsconfig from Microsoft pulls them together, the SDK as Microsoft.VisualStudio.Component.Windows11SDK.26100 next to the MSVC components. The end user never needs the Build Tools, just the Redistributable.

Mixing binaries from different versions

Good news first. Everything built with Visual Studio 2015 or later is binary-compatible, which is why the major number stayed at 14. A library from v140 links into a v145 app without a rebuild.

Three rules still apply:

  • The linker has to be at least as new as the newest toolset that built any input.
  • Code compiled with /GL or linked with /LTCG needs exactly the same toolset everywhere.
  • The Visual C++ Redistributable on the target PC must be as new as the newest toolset used.

Only one Redistributable of this family sits on a machine, and a newer one replaces the older. Installing an older one over it fails with 0x80070666, by design.

Build Tools download and license

Free to download, not free of terms. The Build Tools download page puts it plainly: using them needs a valid Visual Studio license, unless you only build open-source dependencies for your project.

Stuck on an older line for a customer? Visual Studio 2022 keeps its long-term servicing baselines on the same downloads page. We stock both lines.

A build box runs Windows, so the OS matters too. A desktop build machine is fine on Windows 11 Pro; a shared build server is a job for Windows Server 2025 Standard. We compare editions in Windows 11 Pro for Workstations vs Pro and Windows vs Windows Server, and list the Windows 11 requirements. Mac users can build in a Windows virtual machine on a Mac. License types are explained in retail vs OEM vs volume.

Need the IDE and the license in one go? Our Visual Studio 2026 Professional key is perpetual, emailed instantly.

FAQ

how do i check my msvc version

Open a Developer Command Prompt and type cl. The first line shows the compiler version, and cl /Bv lists every component.

What toolset does Visual Studio 2022 use?

Platform toolset v143, with MSVC Build Tools from 14.30 up to 14.44 in version 17.14.

Is 14.51 the same as compiler 19.51?

Yes. Build Tools 14.51 ships compiler 19.51, and _MSC_VER reads 1951 in your code.

Can I keep 14.50 after an upgrade?

Yes. Add it back from the Individual components tab in the Visual Studio Installer and select it per project.

Do Build Tools need a license?

Yes, a valid Visual Studio license, unless you only build open-source dependencies for your project.

Will a library built with VS 2019 link into a VS 2026 project?

Yes. Toolsets from 2015 onwards are binary-compatible, as long as the linker is the newer one and no /GL code is mixed.