2014-11-23 6 views
12

Я пытаюсь создать проект ASP.NET vNext в TeamCity. Когда он пытается построить, я получаю следующее сообщение об ошибке:Можно ли настроить TeamCity для использования MSBuild, который поставляется с Visual Studio 2015?

C:\...\MyApp.kproj(7, 3): error MSB4019: The imported project "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\AspNet\Microsoft.Web.AspNet.Props" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.

файл он ищет на самом деле находится в C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\AspNet\Microsoft.Web.AspNet.Props

Я предполагаю, что мне нужно, чтобы получить TeamCity использовать версию msbuild, который поставляется с Visual Studio 2015. Возможно ли это?

+0

Установили ли вы новую версию MSBuild на сервере, на котором размещен агент Team City? –

ответ

0

Per JetBrains, он не поддерживается напрямую, хотя это должно быть возможно с помощью командных команд TeamCity.

11

Редактировать:Начиная с TeamCity 9.x, все работает из коробки, но для более ранних версий это решение.

Проблема импорта проекта должна быть решена путем установки свойства среды env.VSToolsPath на C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0.

Однако вы не сможете построить, используя входящий в TeamCity проигрыватель MSBuild. Но использование командной строки очень просто. Я достал мета-бегуна, как это. Он имеет почти такую ​​же функциональность, как и входящий в TeamCity MSBuild 2013 бегун. Если вам нужна дополнительная конфигурация, просто добавьте больше параметров.

Моя мета-бегуна закончился выглядеть так:

<?xml version="1.0" encoding="UTF-8"?> 
<meta-runner name="MSBuild 2015"> 
    <description>MSBuild 2015 command line runner</description> 
    <settings> 
    <parameters> 
     <param name="solutionFile" /> 
     <param name="target" value="Build" /> 
    </parameters> 
    <build-runners> 
     <runner name="MSBuild 2015" type="simpleRunner"> 
     <parameters> 
      <param name="command.executable" value="C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe" /> 
      <param name="command.parameters" value="/v:m /m /t:%target% %solutionFile%" /> 
      <param name="teamcity.step.mode" value="default" /> 
     </parameters> 
     </runner> 
    </build-runners> 
    <requirements /> 
    </settings> 
</meta-runner> 

Примечание: TeamCity 9,1, из-за 2 квартал 2015 года предполагается построить VS2015 проекты изначально.

+1

Это работало как шарм для TeamCity 8.x. Теперь у нас есть MS Build Tools для работы в 2015 году с использованием мета-бегунов. Красиво сделано, Эрик! Благодаря! – StephenPAdams

+2

Рад, что это сработало для вас. Обратите внимание, что в TeamCity 9.x все просто работает из коробки, поэтому я бы рекомендовал обновить, если это вариант для вас. –

2

Альтернативным обходным путем является простое замену инструментов 12.0 инструментами 14.0. Я только что загрузил последние инструменты сборки Visual Studio 2015 (обновление 2). Установленная его на моих агентов и

  1. Переименован C: \ Program Files (x86) \ MSBuild \ 12,0 => C: \ Program Files (x86) \ MSBuild \ 12.0-старый

  2. скопированного C: \ Program Files (x86) \ MSBuild \ 14,0 => C: \ Program Files (x86) \ MSBuild \ 12.0

Works! Вам нужно иметь 14.0-инструменты в папках с 12 и 14 для работы.