Использование 2013 msbuild в программе с Project.Build

Наши тесты используют Microsoft.Build.Evaluation.Project.Build для создания проектов.

Прекрасно работает в VS 2010 и 2012 годах. Проблема в VS 2013, она поднимает msbuild с

C:\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 или задать значение среды перед вызовом метода сборки?

Ответ 1

MSBuild и его набор инструментов теперь Версия с Visual Studio

Мы планируем теперь развивать наши инструменты сборки с каждой версией Visual Studio. Каждый выпуск Micrsoft® Build Tools будет иметь новую версию MSBuild, компиляторов VB/С# и набора инструментов. Все они будут вместе. Visual Studio будет использовать исключительно соответствующую версию MSBuild. Например, Visual Studio 2013 будет использовать MSBuild 2013 и ToolsVersion = "12.0". Для согласования с версиями Visual Studios мы обновили версию сборки MSBuilds с 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 одинаковы; переиздан для поддержки формата версии версии для визуальной студии

Ответ 2

от

http://en.wikipedia.org/wiki/.NET_Framework_version_history#.NET_Framework_4.5

//Quote// .NET Framework 4.5 была выпущена 15 августа 2012 года. [27] в эту версию был добавлен набор новых или улучшенных функций. [28].NET Framework 4.5 поддерживается только в Windows Vista или более поздней версии. [29] [30].NET Framework 4.5 использует Common Language Runtime 4.0 с некоторыми дополнительными функциями времени исполнения. [31] // Конец цитаты

Так как 4.5 является "обновлением" до библиотеки 4.0... "C:\Windows\Microsoft.NET\Framework\v4.0.30319 \" - это то место, где я ожидаю, что он найдет свою версию MsBuild.Exe.

Являются ли MSBuild.Exe(которые вы перечисляете) разными?

Вы можете поэкспериментировать с переопределением

 <Message Text=" MSBuildBinPath  = $(MSBuildBinPath)" /> 

свойства.