【问题标题】:Msbuild version in Framework vs Visual studio框架与 Visual Studio 中的 Msbuild 版本
【发布时间】:2018-10-26 03:38:58
【问题描述】:

build.exe 是哪个版本的?


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

除了版本不同,输出也不同。版本号不仅格式不同,信息类型也不同; 框架版本 vs Visual Studio 版本。在不了解情况的情况下,看起来 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

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

【问题讨论】:

  • 自 VS2017 以来发生了变化,例如:您的所有构建都使用 v15,例如docs.microsoft.com/en-us/visualstudio/msbuild/…stackoverflow.com/questions/328017/path-to-msbuild。所以我认为 v4 是为了向后兼容,但不确定。
  • @stijn 这意味着无论是否安装了 Visual Studio,在使用 Dotnet4.7 的原始机器上编译的机器的行为可能会有所不同。假设您正在本地开发并且有一个没有 VS 的构建服务器。嗯。
  • 但是即使没有VS你仍然需要安装构建工具,对吧?最新的 msbuild 版本也可能附带。

标签: msbuild


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-21
    • 1970-01-01
    • 2011-07-21
    • 2020-09-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多