Stay up-to-date with the Visual C++ tools on NuGet

Update 3 Mar ’17: A number of people have asked if a ZIP of our toolset is available. You might not realize it, but the NuGet format is just a ZIP file with an extra metadata file. If you download the current NuGet package and rename the file from .nuget to .zip you can open it in Windows Explorer. You’ll find our toolset under “lib\native”.

Update 3 Jan ’17: We’ve started to publish builds that match officially released versions of MSVC. For example, the VS 2017 RC build is on our NuGet server today. Just uncheck the “Prerelease” box to see the builds that match official versions. (Note that the NuGet distribution method is still prerelease and unsupported, but the tools match the ones distributed in VS.)

Update 9 Oct ’16: The daily C++ NuGet packages work with Visual Studio “15” Preview 5. We’re working on a new method of installing the latest daily toolset drop but for the time being, please continue to use the NuGet feed.

Do you want to try out the newest C++ compiler from Microsoft? Last February we announced a new way to install the Microsoft Visual C++ (MSVC) toolset. Instead of waiting for the next update of Visual Studio, you can just grab the latest release of MSVC from NuGet. Because the tools are being installed as a NuGet package in your project or solution you can easily uninstall the tools and get back to a production-quality environment. More details–and everything you need to know to install these tools–are in this blog post from February: Try out the latest C++ compiler toolset…

We heard two common pieces of feedback from our developer audience. First, you want more frequent releases of the MSVC toolset–nightly if possible. Second, you want better factoring: some of you want to install just x64-hosted tools, some want ATL/MFC, others explicitly don’t want ATL/MFC, and a few wish Clang/C2 was included.

I’m happy to announce that we’ve listened and are addressing both sets of requests. As of this week we’re updating the NuGet MSVC toolset every day. Just configure your NuGet Package Manager to add a new package source at https://vcppdogfooding.azurewebsites.net/nuget/, check the “Include prerelease” box, and browse for the VisualCppTools package. (More details on how to install this package, including instructions for installing on this package for use with the Visual C++ Build Tools, are available in : the February blog post.)

Now there are two important caveats that have to be mentioned here:

  • First, the VisualCppTools package is prerelease software (read the EULA!) so it shouldn’t be used in production environments. We put this package out there so that you can try out new features in development or check to see if a bug has been fixed.
  • Second, while we’re updating the package every day (around 1:30 PST, after our Packaging Bot has had lunch) not every day’s update includes new functionality. Our teams work in feature branches and integrate their work into the release branch periodically. We’ve been working on increasing the frequency of integrations but it’s currently about every 10-14 days. This means that any given day you might see new functionality (or new bugs!) from a compiler and libraries integration or from an optimizer/parser integration. But most days you’ll just see what you saw yesterday with a new timestamp on the binaries. If you do run into any new bugs with these tools–that is, regressions from the previous release of MSVC with Visual Studio–please send us feedback through Connect, email, or any of the usual channels.

What about the second request, better factoring of the MSVC tools? We’re hard at work on that problem too. But instead of pushing that work into the NuGet release channel, we’re focusing on making the Visual Studio “15” experience better. If you haven’t heard, we’ve got a fantastic new lightweight install experience that will install a just the parts of VS that you need. You can read more about the C++-only experience in this blog post: Lightweight C++ Installation in VS “15”.

Lastly, how do you know if you’ve installed successfully and are using the latest MSVC toolset? It’s easy! Just turn off the “Suppress Startup Banner” option in your C++ project configuration.

startup

When you compile you’ll see the version number in the Output window. (MSVC Version 19.00.23918 corresponds to Visual Studio 2015 Update 2.) If you want to determine the version programmatically, just use the _MSC_FULL_VER predefined macro. Here’s what it looks like when I move a project from today’s NuGet MSVC tools back to the VS 2015 Update 2 toolset:

24022

Above, compiled with the NuGet MSVC tools. Below, back to the Update 2 toolset.

23918

Please try out the tools and let us know what you think! And make sure to let us know if you encounter any behavior that you consider a regression from the previous release of MSVC with Visual Studio or a released VS update. You can leave comments on this blog post or send us mail at VCNuGetTools@microsoft.com. Thank you!