We’re are providing new way of acquiring the C++ tools: as a standalone installer that only lays down the tools required to build C++ projects without installing the Visual Studio IDE. This installer is meant to streamline the delivery of the C++ build tools in your build environments and continuous-integration systems. These tools were first introduced with Visual Studio 2015 Update 1 RC but are kept up-to-date with every release of Visual Studio 2015.
This is one of the top asks when we talk with you and hope that this new installer will minimize install times and provide an easier acquisition system in lab environments or for scenarios where you’re not actively doing C++ development but do need the tools to compile C++ code.
How do I get the Build Tools?
This installer is available through the following page. We’d like to hear from you whether it meet your needs and ways we can improve it. Send us your feedback in the comments below or through Connect.
Download Visual C++ Build Tools 2015
The installer will install the following components:
- Visual C++ Compilers (targeting x86, X64 and ARM)
- Visual C++ headers & libraries (CRT & STL)
- Visual C++ build scripts (targeting Windows desktop)
- Microsoft Build Tools 2015 (MSBuild)
- Windows SDK 8.1 (optional, on by default)
- Windows SDK 10 (optional, off by default)
- C++ Build tools specific command prompts
- MFC and ATL (added with VS 2015 Update 3)
Note: These components are the same version as the ones installed by the Visual Studio 2015. As a result, the C++ Build Tools installer will not run on a machine with Visual Studio 2015 already installed on it. The reverse (i.e. upgrade to Visual Studio) is supported.
These tools allow you to build C++ libraries and applications targeting Windows desktop. If you are using the latest Windows 10 SDK for that, make sure you also install the optional Windows 10 SDK components by selecting “Custom” installation type and select “Windows 10 SDK” from the list.
![]()
|
![]() |
After the installation completes, the command prompt shortcuts will be located in “Microsoft Visual C++ Build Tools” under Program Files. For general build scenarios, use the “Visual C++ MSBuild Command Prompt”. If you need access to a specific compiler toolset (for example when building with another build system), use one of the architecture specific command prompts.
What’s next?
We’re really looking for your feedback on whether this meets your requirements and if you have further suggestions for the future. Based on we received on the Build Tools already we’ve licensed this product to be used in in production-level environments.
How about using requests instead of asks. And wasn't this already there for decades until recently. What's new here?
Great! This is very very usefull!
First of all, thanks!
Can you add options to select/deselect the targets in the setuo. I usually don't do ARM development, some times not even x64, and they end up taking a lot of unnecessary space.
Also, is it possible to install the tools in a flash drive?
This is brilliant! Thanks!
Ignore people like "Top what?" – I see countless negative people that have commented on your announcements over the years, who never seem to be satisfied. Features delivered? Criticise the phrasing of the announcement. Phrasing addressed? Next they'll be criticising your font choice. There are plenty of other people quietly happy with the direction you're taking, myself included, so just keep delivering :)
Given that a large amount of code out there, including most projects I've worked on, have some legacy MFC and ATL code in them, the build tools need to either have them included by default or have them as an option in the installer, possibly including also the MBCS version of MFC as well as the Unicode version (some projects still haven't been migrated!). Please ensure that MFC/ATL support is available in the RTM version.
+1 for ATL/MFC
Ideally it should contain debugging tools as well (cdb, windbg and friends). Then you can really use it as standalone solution. Right now we still need to gather those.
I am also for MBCS & Unicode MFC/ATL Support.
Nice to see this, the removal of the standalone build tools from the Windows SDK was a loss and I'm glad to see this back again.
As a bit of a heads up though, I decided to grab the entire package using the /layout command line option, and the default path is %UserProfile%Microsoft Visual C++ Build Tools. The obvious problem is that + isn't accepted as a valid path character.
MFC/ATL support would also be useful for our projects.
Is it Clang/C2?
Having a "Build tools" installer is nice. You guys did it way back with Visual C++ Toolkit 2003, but it had some limitations (no MFC if I recall), then it went away with VC++ 2005 because Express was seen as a replacement.
Hopefully you keep moving forward with a "build tools" installer that's able top build whatever the full Visual Studio SKU is able to build for C++, but without the IDE – just the stuff (and all the stuff) that is necessary for command line builds.
Useful.
Nice to be able to build code on/for Windows (with your toolchain) without dragging in the full Visual Studio monster.
Thanks.
Is there an offline installer?
Will this be released on a DVD with all optional stuff for people with no internet connection on their development systems?
Can you integrate with a package manager like MSYS2 and/or OneGet instead (even standalone zip files are better) of an annoying installshield like installer?
Great news! This will make a lot of people happy.
What's missing for me are the debugging tools (could be optional and left out by default).
That would make it a really nice one-stop solution.
@Ivan,
We don’t yet have the capability to be that granular in our setup (no ARM, no x64) but this is something we'd like to consider in the future
@Mike Diack, Vertex, Mark
We heard you loud and clear. We'll investigate how we can add ATL/MFC for the RTM version of the VCBuild tools.
@Maurice, Krzystof Kawa
The Debugger Tools for Windows also get installed together with the WinSDK bundled in the VCBuild Tools.
@Darran Rowe,
Thanks for reporting this issue. We'll look into picking a better default. For now, you'll have to pick a valid path manually.
@Bob,
We'll provide an ISO release as well. There are components however that may still require an internet connection (e.g. WinSDK 10 installer).
@asdf,
No plans to move away from msi to share yet but happy to chat about your scenarios in email. Can you send me an email at mluparu at microsoft dotcom?
Thanks for your feedback so far. Keep it coming!
@Marian Luparu Unless I'm missing something this doesn't seem to be the case. The WinSDK folder indeed contains Debuggers directory but it's mostly empty (no cdb.exe, windbg.exe etc.). This was also the case up to now for the WinSDK installed with VS. The debugging tools were only installed as an optional component in standalone WinSDK or DDK installation. It would be great if the WinSDK version bundled with this package included debugging tools (same for full VS installation btw. but that's another topic).
Can the Build Tools be installed without requiring elevation? On build machines that need to get the latest code and tools it can be inconvenient (even impossible) to run any installers that require elevation. Therefore, if the build tools have to be installed in C:Program Files, or if they use the CRT DLLs, then deployment to build machines may be significantly complicated compared to VC++ 2013 deployment techniques used by Chromium.
We would also need ATL (but no MFC) for production use.
It doesn't work. Lots of dependencies missing. First one is
API-MS-WIN-CRT-STDIO-L1-1-0.DLL
@ J.L. could you be specific about your scenario. can you send Marian an email about this issue (mluparu at microsoft dotcom).
@Iyyappa I am at Win8.1 64 and what happens is this. The missing dependencies are installed only at
%ProgramFiles(x86)%Windows Kits10RedistucrtDLLsx64
but no path is updated to include that dir (could it be because I'm on 8.1 and the dir is for 10?). If I add it manually, than it works.
@Krzysztof Kawa,
Sorry. I was mistaken. the VCBuild installer does not install the Debugger tools. You still need to install the standalone WinSDK to get them.
We'll take a look whether this is something that can be bundled with the VCBuild tools package.
@J.L Thanks for reporting the issue. We will investigate and fix it.
How about the lincense? Is it free for commercial use? Are tehre any limitations for commercial use as in the community editions of VS?
Great stuff Marian – re: ATL/MFC support.
As Choosyg said, it would also be useful (though not an issue for me), to know the licensing details/restrictions in general.
I develop C++ using the Community edition. I only use command line tools, makefiles, etc.. This gives the structure for portability for cross-platform development. The only thing on my list that I don't see above is the debugger. It may not be needed often but is sometimes essential. I am assuming that MASM is included in the command line tools (both 32 and 64 bit versions). Unfortunately, C++ omits some things that can be easily done in assembly, and with the removal of inline assembly from the 64-bit C++ compiler (A REALLY, REALLY BAD DECISION!!!!) sometimes assembly is needed.
This is an interesting concept. One question so far, will this standalone installer also install the various debug *CRT*.DLLs? That can be useful in a few scenarios.
Could you skip the default / custom choice and jump straight to custom?
@Michael Lee Finney:
As was already mentioned, the defaults don't include a debugger. For Visual Studio 2015, to get WinDBG installed, I had to go to Programs and Features and change the Windows 10 SDK to include it. So something similar will be needed by default. Either install the standalone version of the Windows 8.1 SDK if you don't want the Windows 10 SDK, or if you choose to install the Windows 10 SDK, after setup, go back and change the Windows 10 SDK's features to add the debuggers.
Yes, it is an oversight that should be fixed, so put in your vote now to make sure that you have the choice to install the debugger along with the SDK.
From what I've seen of the tools though, they include ml.exe and ml64.exe. They are pretty much identical to what we get already with VS. Really.
@Darran Rowe: I, for one, wouldn't have expected this installer to allow installing optional Windows SDK features like the Debugging Tools or the other handy tools …
… but that's mostly only because I've already seen that the VS 2015 Update 1 RC1 installer doesn't provide such choices, either. Kind of makes me wish you could recurse into the SDK's own feature-selection from the VS/VC installer.
Also, I'm with whoever said they don't think that the "Default/Custom" dichotomy is useful; if you want to provide a useful shortcut here, "Full" would make more sense then "Default", since the user has no way of knowing what they'll miss out on if they choose "Default" other than choosing "Custom" and examining the full tree, by which point going back and choosing "Default" would no longer be a shortcut.
(Do you have telemetry on how many actual users pick Default, and perhaps on how long it is before they come back to install more features?)
Glad to see this package available; thanks!
I may be missing something, but it looks like it's no longer possible to run the %VS140COMNTOOLS%….VCvcvarsall.bat script directly; I get the error "Cannot determine the location of the VS Common Tools folder". Invoking the script from the vcbuildtools.bat works correctly, though. Is this intentional? I have some scripts that rely on vcvarsall.bat to set up the build environment for various versions of MSVC; will I need to add special logic to locate vcbuildtools.bat from now on?
@ CDS, you are right, it is intentional that we created new script since vcvarsall.bat takes a dependency on VS installation indirectly. Yes, for now you need to branch your logic to detect this SKU. You can detect if the SKU is installed by looking at the registry as below
[HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoftVisualCppBuildTools14.0]
"Installed"=dword:00000001
or
[HKEY_LOCAL_MACHINESOFTWAREMicrosoftVisualCppBuildTools14.0]
"Installed"=dword:00000001
@Iyyappa Murugandi Okay, good to know; thanks. Though, I notice you said that the build-tools-only SKU must be explicitly detected "for now" ; does that mean that there are plans to fix the indirect dependency on VS in a future update?
I have to say that adding ATL/MFC is a must, it is a petty stance from Microsoft to only support MFC/ATL development and building in Visual Studio Professional. Incurring the cost of a professional license for a build server is insane.
And to top it all off MS constantly tries to push Community edition even though even small size companies have no way of using this for anything given the licensing requirements. At least provide a low cost alternative without the bells and whistles of Pro so one can develop, build and test all types of projects.
How about linux support :/
Great work. Thanks! This was required by GUI-less install (server core & nano server) and many other scenarios where the devs are only interested in slim C/C++ compilers in Windows.
For offline install, you can invoke the installer .exe from CMD with /layout switch. Note that with this download-only "/layout" switch, the installer complains that the default path has invalid ++ characters, so the user is required to change the path. Please fix that.
I guess the idea is basically a good one, and it can always be refined. That in mind:
"… This new installer is meant to streamline the delivery of the C++ build tools in your build environments and continuous-integration systems. …" — how is a new *installer* supposed to help with that. 'Course there may be cases where I'm happy with a smaller footprint that this can give me, but *I still need to run a bloody installer*.
The Only One And True "deployment" system of build tools to Build/CI nodes is an xcopy deployment where I DO NOT have to run an executable just to get the tools I want.
Oh yes, and of course one'd want MFC et al with it – otherwise it's a half baked solution.
So much for my further suggestions :-)
I forgot to say that we also need to be able to OPTIONALLY (like SDK 8.1 etc.) include Windows SDK 7.1A so we can target Windows XP. MS really needs to understand that lots of business rely on Windows XP in the machines that we need to target. These are running fine, firewalled inside a company, and cannot be upgraded to later Windows versions. So targetting XP with the build tools should also be supported.
Good. But I won't celebrate it because this should have been released the day the compiler was removed from SDK.
Why is the ISO download of Visual Studio Community 2015 missing vital C++ components and thus can not install without an internet connection when a second ISO could easily fix this? Standalone should mean: no internet needed post download.
Does the new standalone C++ Buld Tools work around this problem?
Could a /layout command line switch be made available (post download) allowing the full install of a VC++ 2015 Community Edition on a PC with no internet?
> The Only One And True "deployment" system of build tools to Build/CI nodes is an xcopy
> deployment where I DO NOT have to run an executable just to get the tools I want.
+1
>"Note: These components are the same version as the ones installed by the Visual Studio 2015 Update 1 setup. As a result, the C++ Build Tools installer will not run on a machine with Visual Studio 2015 already installed on it"
This is lame. Fix this.
If this is for automated set up of build envro then WHY does it require manual interaction. It is a GUI?
How about a command line install? with command line options or a config file of what to install or not.
In the middle of the first page there is an OPTIONAL check box to join the MS SpyWare (aka exp improv prog).
It says it is OPTIONAL but you can NOT turn it off. HOW IS THAT OPTIONAL ??????
I don't want to download this from the net every time I rebuild a clean build envro. We frequent do this with EVERY build using Hudson&Jenkins (multiple time a day). Let use download this as a complete image that we can put on out local servers.
You NON-automatic version does not give me anything that xcopy doesn't.
It is a good thing to ship the compilers. We had that in the past in the SDK. Why don't you include it like it was in the past ?
C++ compilers should be free. We build Windows, we build Office, we build IE, we build SQL Server. We are the central place for building software. Let's ship for free !
Please, please include support for MFC/ATL and XP targeting like in full VC version.
(12/8/2015) The download link is dead.
@rilut, I just checked and it seems to be working fine. Are you using the latest one: go.microsoft.com/fwlink ? The post was updated on 12/1 with a new link but maybe not all caches were updated.
This is fantastic, thank you!
After being a Linux user since the mid 2000's, going to Windows 7 (work purposes) was a bit upsetting due to the lack of such tools like this available (without having to download some bulky program that you may not necessarily want or need). However, since Windows 10 and the way Microsoft tends to be going is definitely in the right direction to encourage developers to switch over – I'm definitely feeling encouraged and can do a good amount of simple programming routines (in Windows now) that I did all the time within Linux (and even OSX). There is still much more to go before Windows catches up, but it's a good start.
P.S.
Taking the initiative to incorporate OpenSSH into Windows natively is definitely a plus, but having it implemented to PowerShell is a little disheartening since PowerShell is very slow, compared to cmd and bash. Instead, implementing it in cmd.exe would definitely be a plus! And incorporate analogues to simple function like 'ls', 'grep', 'less', etc found in bash, maybe even upgrade the batch scripting language. Just some food for thought.
1. the download link is dead (12/29/2015)
2. Could you consider releasing windows docker images (using Windows Server Container or other app container technology e.g. Spoon)?
I guess the build tools are primarily used in automated environment, it's much easier and flexible for us to just pull the image to build rather than install it on machine (even it's VM).
@Jonny Yu: RE #1: please retry the link – it was likely a temporary issue – it seems to be working fine now. If nothing works, go directly to http://www.microsoft.com/…/details.aspx but know that this is not a permanent link; you should always reference the link from the blog.
RE #2: thanks for your suggestion. We'll look into what's possible here
I second those asking for some sort of offline image or container for installation. Enterprise IT distribution/firewalls and all that don't play well with these online only installers.
My primary question is… what's the license attached to this package? If necessary, I can create a scoped package for my users, but I need be sure it's either a MS license we've already got an approval for, or it's a friendly OS license.
Also +1'ing the need for MBCS/MFC/ATL libraries.
This is amazing!! I have been waiting for this since years and months i.e. since VS 2012 is launched, we were seeing only MS windows c++ command line compiler as what was provided with Windows SDK 7.1. I am happy that we finally understood the need of such developers who don't need the entire VS IDE just for building C++ programs. Thanks a ton :D. One request, even after you marketize this product for corporate use, if possible please keep at least one version of this command line tool as 'free' as there are developers who want to create C++ programs for Windows but they want to use only MS C++ compiler on Windows and may not be ready to pay a hefty amount for the complete IDE they are not even intending to use. Thanks once again :-)
Hi Marian,
Is there any (even approximate) date when MS Visual C++ Build Tools should be released?
Thanks,
Ondrej
Why do you use a online installer rather than a zip file
Thanks!
How to create (or where to download) offline installer for Visual C++ Build Tools 2015 ?
download the webinstaller and run from command-line with: /layout
Sadly, this does not work with CMake. We get the error:
C:jenkinsworkspaceZERO_CHECK.vcxproj(27,3): error MSB4019: The imported project "C:Microsoft.Cpp.Default.props" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.
One question: is it compatible tool with QtCreator (Qt Framevork)?
Thanks for advice,
Bests regards.
I’m glad you’re offering this package! I would like to second adding the ability to choose which items & targets get installed (like the Windows 7.1 and XP SDKs do) to save disk space and registry performance. For example, in my use case I build only C++ native code for x86 and x64. I have absolutely zero need for IA-64, ARM, or anything .NET related (managed code.)
I’m also having a problem with MSBuild from this package not looking in the correct include directories. According to https://msdn.microsoft.com/en-us/library/et4zwx34.aspx the INCLUDE env var will be consulted. I’m not using any /X switch on my compile line and despite the correct path being among the many listed in the INCLUDE variable, MSBuild can’t even find stdio.h. Process Monitor showed that it was only trying to look in C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\ which happened to be the first path in the INCLUDE, but it didn’t try any of the subsequent ones. If I change INCLUDE to only have the correct path (C:\Program Files (x86)\Windows Kits\10\Include\10.0.10150.0\ucrt in my case) it still fails to find it (and very strangely, it doesn’t log any path including ‘stdio’ in Process Monitor. It’s like it doesn’t even try!)
Any ideas on why this could be happening?
I just discovered that despite choosing the Windows 8.1SDK during installation of this package, only the stdio.h file from the Windows 10 SDK is installed. But MSBuild is looking for a newer directory (10.0.10240.0 vs the 10.0.10150.0 I have) so is failing. It really stinks that I need to chew up over 7GB of disk space just to be able to get software to build…
Great stuff!
in the ‘Select Features’ window, there is plenty of space to add ‘Debugging Tools’. waiting for it…
could be even greater if i could make my own installation with the tools that i use and to make it as a dvd, to pack it all in one installer package.
i know it can be done in many ways, but is nice to make an official modular installer of prefered tools.
Thanks for adding this! Trying to setup a minimalist C environment on Windows without turning to Cygwin or MinGW is hard. I’m glad there is a standalone option for this now without having to download Visual Studio. Had to play around with the $env:include & $env:lib variables a bit to get CL.exe to find the right files but I finally got a hello world to compile :)
I hope you continue to support standalone C/C++ compiler and libraries.
it’s nice ! but the installation file still huge.
Thank you very much for these stand alone build tools! It is especially helpful to Windows Python users who need to install Python packages with C-extensions, but are doing active development in C to warrant Visual Studio. Or for corporate users who cannot install Visual Studio Community Edition because of licensing rules.
I have a question regarding the Windows SDKs under custom install. If one installs the build tools using the default settings which do _not_ install the Windows SDKs apparently, and then installs Visual Studio 2015 Express, will the full Windows SDK also be installed? Is there any way to check which SDKs are installed? They do not appear in the Control Panel Programs list, but they are listed in “C:\Program Files (x86)\Windows Kits” and elsewhere. There are also stand alone SDK installers for 8.1 (* https://dev.windows.com/en-us/downloads/windows-8-1-sdk) and 10 (https://dev.windows.com/en-us/downloads/windows-10-sdk). What happens if one installs these either before or after installing VS2015 Express? When should they be installed? Are there additional components, such as windows debugging that are **not** installed with VS2015 Express that can only be installed with the SDK? If a more current library is already present, will installing an older SDK overwrite it? Will installing the SDK after VS2015 break it, or make it impossible to remove without downloading and extracting an ISO and doing some hackery? Will there be a VS2012 & VS2015 removal tool like there was for VS2010SP1?
Thanks!
(*) The Windows 8.1 SDK is confusing b/c it looks like the content is repeated twice – is it unintentional or if it is intentional, why?
Is there anything new?
Great!
I missed this part. According to the screen shots above, clang/c2 is not yet an option for build tools?
I am especially interested in running clang/c2 in a unix-like build environment (msys2) to generate MSVC-compatible open source libraries. Even better might be if the command line only build tools are Wine-compatible since they then could be installed on the ( usually linux-based ) continuous integration build servers. This would ensure that every commit made to an open source project remains Windows-compatible.
This would lower the thresholds of making Windows-ports of various open source technologies (and when they get more usage, a more native port of the build system can be made so it is not a move away from the “Windows way”, just a way to make the transition easier).
There is a small bug in vcbuildtools.bat if invoked using “call” from an existing command prompt or wihtin a batch file. If your current working dir is on a different drive than vcbuildtools.bat (e.g. D:), the VCTargetsPath will be set to the current working directory instead of the tools path, and msbuild will fail to find the default .props files.
Setting curDir to %cd% and adding the /d switch to the cd commands below fixes this issue.
When I tried to run any vcvars bat file (contain in C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC), I obtain this error :
“ERROR: Cannot determine the location of the VS Common Tools folder.”
I’m qurious…. Size of this stand alone compiler suite is quite huge, compared with new lite instaler for Visual Studio 15 -> https://www.visualstudio.com/en-us/downloads/visual-studio-next-downloads-vs.aspx when just select C++ category?
What is diference in this two products? Stand alone compiler ~9GB, VS all VisuelStudio stuff for ~1GB? Am I missing something?
Unfortunately, the download link is broken (http://cta-redirect.hubspot.com/cta/redirect/1739763/901c788d-5554-4c64-afa8-0ea66feebf0a). I can’t find any other page that references these build tools. What is the correct link?
Hi Nathan,
that link should be working now. Are you still having trouble accessing it?
You can also reach me at mdick at microsoft.com
Thanks!
The download link on the following page is not working (the link above worked)
http://landinghub.visualstudio.com/visual-cpp-build-tools
How can I get a portable version, a build environment without system assoc.
Could be http://paulhoule.com/msvc14/ might help if they haven’t restructured things
I mean msbuild. It reads some values from the registry.
It would be really nice if the Visual C++ Build Tools downloads provided the following (actually these would apply to all Visual Studio downloads):
1) provide an option to download a complete ISO (or other complete installation package whether ISO, MSI, exe or zip). Using the “/layout” is a OK I suppose, but why not just let me download a single package that gives me everything for installing offline? As an example, I just ran the “/layout” option for the Visual C++ 2015 Build Tools and got some error about the VSSecondaryInstaller_box package not being downloaded. Looking at the log, I don’t know if it’s a permission problem, a disk space problem (both look fine to me as far as I can tell), a signing issue, or what . What am I supposed to do about that? At least with an ISO download I can use a MD5 or SHA to verify a download, and if it’s not successful I know it’s strictly a networking or disk space issue and can use my normal troubleshooting. As a final note to this: the install I ran from that “/layout” download seemed to work fine in spite of the error during download.
2) provide links to archived versions. When VS 2105 Update 3 comes out, I should still be able to get downloads for the RTM, Update 1 and Update 2 versions.
3) provide information about how to identify what ‘marketing’ version of the tools are installed. It would be good to know if an installation corresponds to RTM, Update 1, Update 2 or Update 3. For example, “cl /?” doesn’t tell me anything about update 1, 2, or 3. It just says version 19.00.24210. I have no easy way to know what Update/Service Pack that corresponds to.
By the way – why did the VS team move away from the “Service Pack” terminology? The word “Update” is so overloaded and seems to make searching for things a bit more difficult.
I downloaded this, But there is no cl.exe compiler, link.exe, or nmake.exe
What do I need to go from 2010 to 2015 c++?