У меня есть сервер TFSBuild 2013, с которого мы сейчас пытаемся построить проекты UWP, но мы не можем заставить его использовать правильную версию MSBuild.TFSBuild 2013 не может изменить версию msbuild
Симптомы:
При построении UWP проектов, мы получаем много ошибок, как это: C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v14.0 \ AppxPackage \ Microsoft.AppXPackage. Цели (283): было произведено числовое сравнение на «10.0.11000.0», которое оценивается как «10.0.11000.0» вместо числа, в условии «$ (TargetPlatformVersion)»> «10 .0.11000.0».
Многие сообщения изобилуют этой ошибкой, и все сообщают вам, что TFS Build использует правильную версию MSBuild. И в этом и заключается проблема. Мы не можем заставить сервер сборки использовать правильную версию.
Вот что мы пытались (построить определения используется шаблон TfvcTemplate.12.xaml):
- Установка 2015 сборки инструментов (обновление 3) на сервере сборки
- Установка VS2015 на сервере сборки (Yuck)
- Различные комбинации параметров MSBuild в определении построения. (/tv:14.0 & /p:VisualStudioVersion=14.0)
- Включение Microsoft.Net.Compilers NuGet пакет
- Редактирование шаблона TfvcTemplate.12.xaml и настройки "Run MSBuild" шаг, чтобы установить "ToolsVersion" на " 14,0" . (Обратите внимание: в этой версии шаблона нет параметра «ToolsPath», поэтому я не могу этого сделать).
- Установка ToolsVersion = «14,0» в каждом файле не .csproj
Независимо от того, что мы меняемся, мы не можем получить сборки агента использовать версию MSBuild 14.0.
Странно, nuget, кажется, находит правильную версию при восстановлении пакета. В журналах мы видим это при запуске команды восстановления nuget.exe: автоматическое обнаружение MSBuild: с использованием версии msbuild '14 .0 'из' C: \ Program Files (x86) \ MSBuild \ 14.0 \ bin '.
Но дальше в журналах, где все ошибки начинают мы видим это (примечание: неправильные инструменты версия): C: \ Program Files (x86) \ MSBuild \ 12.0 \ Bin \ MSBuild.exe/NOLOGO/noconsolelogger «C: \ Строит ...» [СНиП]
Любая помощь или предложения с благодарностью приняты - я в моем конце остроумия :)
Можете ли вы построить свой проект с помощью командной строки MSBuild вручную на вашей машине агента сборки? Вы указываете аргумент MSBuild/p: AppxBundlePlatforms = "$ (BuildPlatform)"/p: AppxPackageDir = "$ (Build.BinariesDirectory) \ AppxPackages \\"/p: AppxBundle = Всегда в определении вашей сборки? –
Да, построение решения с использованием VS2015 на сервере отлично работает. – MercifulGiraffe
Мы были бы счастливы, если бы мы могли просто заставить TFSBuild всегда использовать 14 версию MSBuild. Можем ли мы заставить его каким-то образом сделать это по умолчанию? – MercifulGiraffe