我们的测试使用Microsoft.Build.Evaluation.Project.Build来构建项目。
适用于VS 2010&麻烦在VS 2013中,它从
中获取msbuildC:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe
ver 4.0.30319.18408
而非VS 2013
C:\Program Files (x86)\MSBuild\12.0\Bin\MSBuild.exe
ver 12.0.21005.1
有没有办法要求它拿起VS 2013 msbuild? 可能在调用构建方法之前添加到.proj文件或设置环境值吗?
答案 0 :(得分:3)
MSBuild及其工具集现在使用Visual Studio版本
我们计划从现在开始使用每个版本的Visual Studio改进我们的构建工具。每个版本的Micrsoft®BuildTools都将推出新版本的MSBuild,VB / C#编译器和工具集。他们将一起版本。 Visual Studio将独占使用其相应版本的MSBuild。例如,Visual Studio 2013将专门使用MSBuild 2013和ToolsVersion =“12.0”。为了与Visual Studio的版本控制保持一致,我们还将MSBuild的汇编版本从4.0升级到12.0。
还有一个指向visual studio团队页面的链接,还有一些其他默认值可供检查
http://blogs.msdn.com/b/visualstudio/archive/2013/07/24/msbuild-is-now-part-of-visual-studio.aspx
然而4.0和版本12是相同的;重新版本以支持visual studio版本号格式
答案 1 :(得分:0)
从:
http://en.wikipedia.org/wiki/.NET_Framework_version_history#.NET_Framework_4.5
// //引用 .NET Framework 4.5于2012年8月15日发布。[27]此版本中添加了一组新的或改进的功能。[28] .NET Framework 4.5仅在Windows Vista或更高版本上受支持。[29] [30] .NET Framework 4.5使用公共语言运行时4.0,以及一些额外的运行时功能。[31] //结束报价
由于4.5是对4.0库的“升级”.......“C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \”是我希望它能找到它的MsBuild版本的地方。可执行程序。
MSBuild.Exe(你列出的)是不同的吗?
您可以尝试覆盖
<Message Text=" MSBuildBinPath = $(MSBuildBinPath)" />
属性。