Visual Studio Build Tools licensing

As mentioned in Use lld by default on Windows to mitigate Microsoft C++ Build Tools licencing issues and a lot of other places, VS Build Tools that are used by default on Windows is quite messy from the legal point of view.

But it seems like Microsoft is going to at least partially fix it soon:

https://developercommunity.visualstudio.com/t/build-tools-licensing-requires-visual-studio-licen/1691702

Historically, use of the Visual Studio Build Tools has been restricted to users with a license to Visual Studio and for use with Visual Studio-developed projects. (You can find the Build Tools license here: https://visualstudio.microsoft.com/license-terms/vs2022-ga-diagnosticbuildtools/)

We will be shortly releasing an updated license to the Build Tools that expands its use to building (but not developing/testing) open source C++ dependencies without the requirement of using Visual Studio. At this time, development and testing of open-source dependencies will still require the use of Visual Studio Community or higher. We recognize that this expansion of usage rights doesn’t address all of the needs that users have expressed, and we’re continuing to evaluate how to best address those needs.

<...>

Today, the VS Build Tools are licensed as follows “You may install and use any number of copies of the software to use solely with Visual Studio Community, Visual Studio Professional, and Visual Studio Enterprise, to develop and test your applications.”

The change we’re making would allow you to use the VS Build Tools with Visual Studio Code in some circumstances. For example the following scenario would become supported: you are developing your own app with VS Code, and want to use a C++ OSS component that must be compiled before you integrate it. (You aren’t developing that component, you simply need to compile it to use it.) Today, that scenario is excluded per license.

-Paul Chapman [MSFT]

Is anyone is trying to talk to MS to make these changes more friendly for the Rust use case? Maybe someone from the Rust Foundation, which Microsoft is a part of?

The author of that Feedback post is a collaborator on the Microsoft windows-rs crate and is involved with Rust. There have been some attempts to reach out to various people at Microsoft to either get clarification on the license (which is still a bit vague) or to get more permissive terms, but I have not seen any movement.

Perhaps @rylev could share if any progress was made.

Hello all,

I'm Microsoft's representative on the Rust Foundation board of directors. Please feel free to reach out to me at nells@microsoft.com (or @rylev) with questions about this (or anything else Microsoft and Rust). I know it feels a bit antiquated to use email, but it is the most straightforward way for me to pull in people from around Microsoft who can either provide answers or drive the process needed to get answers.

7 Likes

In terms of rust, the biggest improvement would be the open sourcing of the vcruntime. This is very much on the table and would allow us to have a LLVM based msvc toolchain that does not require Visual Studio. Which in turn would improve the new user and open source experience immeasurably.

For projects that want or need Visual Studio build tools, more permissive licensing terms for open source projects is of course very welcome!

3 Likes