PS C:\Windows\Microsoft.NET\Framework\v4.0.30319> .\msbuild.exe -version
Microsoft (R) Build Engine version 4.0.30319.33440
[Microsoft .NET Framework, version 4.0.30319.34014]
Copyright (C) Microsoft Corporation. All rights reserved.
4.0.30319.33440PS C:\Windows\Microsoft.NET\Framework\v4.0.30319>
在程序文件下:
PS C:\Program Files (x86)\MSBuild\12.0\Bin> .\MSBuild.exe -version
Microsoft (R) Build Engine version 12.0.21005.1
[Microsoft .NET Framework, version 4.0.30319.34014]
Copyright (C) Microsoft Corporation. All rights reserved.
12.0.21005.1PS C:\Program Files (x86)\MSBuild\12.0\Bin>
6 回答
.NET 4.5是4.0的替代品 - 您将在4.0目录中找到程序集 .
有关此主题,请参阅Rick Strahl和Scott Hanselman的博客 .
您还可以在以下位置找到特定版本:
编辑:这个答案是正确的,直到2013年中期,但你可能有一个更新的版本,因为the big msbuild change . 有关详细信息,请参阅the answer from Jonny Leeds .
C:\Windows\Microsoft.NET\Framework\v4.0.30319
下的版本实际上是.NET 4.5 . 这有点奇怪,但肯定mscorlib
包含用于异步的AsyncTaskMethodBuilder
等 ..NET 4.5有效地覆盖了.NET 4 .
.NET 4.5不是并行版本,它取代了4.0的程序集 . 与.NET 3.0一样,3.5和3.5SP1取代了2.0的程序集 . 并添加了一些新的 . CLR版本仍然是4.0.30319 . 您只关心参考程序集,它们位于c:\ program files \ reference程序集中 .
虽然上述答案是正确的,但值得注意的是MSBuild has changed并且它不再附带.net框架,它既可以单独使用,也可以与visual studio一起使用 . 结果它的二进制文件已经移动了...所以你在4.0.303619目录下得到的那个实际上是旧的!
我刚被发现 - 我发现automatic binding redirects仅在从VisualStudio运行时才起作用,但在从命令行运行msbuild时却没有...线索是在VS 2013中添加了绑定重定向(对于该读取.net框架) 4.5) . 如果你打开一个vs命令提示符,你会看到它现在从程序文件中获取它,正如另一篇文章所提到的那样 . 我在我的路径上使用批处理文件链接到旧版本 .
版本号
在框架下:
在程序文件下:
网页不正确,我已经向MS指出了这一点,他们会改变它 .
如上所述,.NET 4.5是4.0的就地升级,因此您只能使用Microsoft.NET \ Framework \ v4.0.30319 .
MSBuild的ToolVersion保持为“4.0” .
查看是否已安装4.5(而不是4.0)的官方方法是在注册表项中:
Relesae DWORD需要大于378675这是微软doc
在4.0.30319.xxxxx之后检查次要版本的所有其他答案看起来是正确的(msbuild.exe -version,或者clr.dll的属性),我只需要记录一些内容(不是博客)