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:
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?