Here is my best attempt to articulate why I believe all dependencies, including compiler toolchains, belong in version control.

https://www.forrestthewoods.com/blog/dependencies-belong-in-version-control/

Dependencies Belong in Version Control

Why dependencies should be checked into version control.

@forrestthewoods yes! And, packaging up things like “visual studio” etc is not even that massive. IIRC at Unity I had that in like 200MB without even trying hard. This is for old version, but idea the same https://gist.github.com/aras-p/e5df1b7a3374b99ae31f053b14403d92
Packaging up Visual Studio & Windows 10 SDK for in-repository usage

Packaging up Visual Studio & Windows 10 SDK for in-repository usage - package_builds_vs2017.cmd

Gist
@forrestthewoods @aras hmm .. that works? I would've expected visual studio to set all kinds of archaic registry stuff that would make it not function if not "properly" installed
interesting
@logicalerror @forrestthewoods that’s what we did at Unity, so worked at least there :)

@aras @logicalerror it requires setting up your build tool to point at the committed toolchains. And C++ has a million different build systems.

At the end of the day some process calls cl.exe and link.exe. There is surprisingly little magic.

I’m increasingly a fan of nuking environment variables to prevent random PATH bullshit from leaking in. :)