框架与Visual studio中的Msbuild版本

框架与Visual studio中的Msbuild版本,msbuild,Msbuild,哪个版本的build.exe是什么 我有一台仅安装了Visual studio 2017(v15)的机器。 然后我有2个msbuild.exe文件。一个在framework文件夹中,另一个在Visual studio文件夹中 除了版本控制不同之外,输出也不同。版本号不仅在格式上不同,而且在信息类型上也不同;框架版本与VisualStudio版本。在不太清楚的情况下,Visual studio似乎有自己的msbuild.exe,而不是从框架的 C:\Windows\Microsoft.NET\F

哪个版本的
build.exe
是什么


我有一台仅安装了Visual studio 2017(v15)的机器。
然后我有2个
msbuild.exe
文件。一个在framework文件夹中,另一个在Visual studio文件夹中

除了版本控制不同之外,输出也不同。版本号不仅在格式上不同,而且在信息类型上也不同;框架版本与VisualStudio版本。在不太清楚的情况下,Visual studio似乎有自己的msbuild.exe,而不是从框架的

C:\Windows\Microsoft.NET\Framework\v4.0.30319>msbuild /version
Microsoft (R) Build Engine version 4.7.3062.0
[Microsoft .NET Framework, version 4.0.30319.42000]
Copyright (C) Microsoft Corporation. All rights reserved.

4.7.3062.0
vs


.NET Framework 4中包含了一个版本的MSBuild,该版本未收到任何功能升级,但由于它是.NET Framework的一部分,因此将继续作为Windows的一部分提供-已在版本4.0中实现的功能状态下冻结。您发布的内部版本号表明它是4.7.2.NETFramework安装的一部分。它只能生成较旧的.NET项目(Visual Studio 2010 c#/vb项目)


较新的MSBuild版本将单独安装。在Visual Studio 2017之前,VS使用了一个全局MSBuild安装,但在2017年,MSBuild是VS安装的本地版本,以支持不同VS版本的并行安装。

这自VS2017年以来发生了变化,如:您的所有生成都使用v15版本,请参见示例。因此,我假设v4是为了向后兼容,但不确定。@stijn这意味着,如果安装或不安装Visual studio,在原始计算机上使用Dotnet4.7进行编译的计算机可能会有不同的行为。假设您正在本地开发,并且有一个没有VS.Hmm的构建服务器。但是即使没有VS,您仍然需要安装构建工具,对吗?最新的msbuild版本可能也会附带此功能。
C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin>msbuild /version
Microsoft (R) Build Engine version 15.6.85.37198 for .NET Framework
Copyright (C) Microsoft Corporation. All rights reserved.

15.6.85.37198