0
votes

My local machine (Windows) has 2 versions of MSBuild.

  • C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\MSBuild.exe

  • C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\MSBuild.exe

The first one (Professional) compiles my solution successfully while the second (BuildTools) fails with errors like missing reference to assembly netstandard.

The reason why I'm asking this is I made a Docker windows container where I want to build, test, and deploy a .NET desktop application. I've successfully installed MSBuild (BuildTools version) and it fails to compile the solution. The docker container does not have Visual studios installed.

What's the difference between the Professional version and BuildTools version?

1
What exactly is the project you attempt to compile? Without knowing that there isn't much to discuss. BTW, I don't think we should use "MSBuild Professional" or "MSBuild Tools". The actual concepts of the two should be, "MSBuild as part of Visual Studio Professional 2017" and "MSBuild as part of Microsoft Build Tools 2017". They are separate products, and installed side by side. They have shared components (bits like MSBuild.exe are exactly the same), but they serve different people for different goals.Lex Li

1 Answers

0
votes

Both are Visual Studio installations with some tools and licensing differences, but you need to install the Workloads that you need to use for both.

So also for the Build Tools, you may need to install the .NET Core cross-platform development using the Visual Studio Installer or a matching command line (vs_buildtools.exe --add Microsoft.VisualStudio.Workload.NetCoreBuildTools)