Обновление контроллера сборки/агентов для создания приложения С# 6/.NET 4.6

здесь сцена:

Мы используем Visual Studio Online и локальный сервер сборки в нашей сетевой сети с TFS 2013 для создания нашего решения после закрытых проверок и выпусков.

Теперь мы обновили с Visual Studio 2013 до Visual Studio 2015 Enterprise и обновили до новой версии .NET. Мы действительно стремились использовать новые возможности С# 6, но после первой регистрации мы столкнулись с тем, что сборка завершилась неудачно.

(Извините, нет изображения, поскольку у меня нет репутации)

Сообщение об исключении: ошибка MSBuild 1 завершила эту сборку. Ты можешь найти более конкретная информация о причине этой ошибки выше Сообщения. (тип BuildProcessTerminateException) Исключительная трассировка стека: в System.Activities.Statements.Throw.Execute(CodeActivityContext контекста) в System.Activities.CodeActivity.InternalExecute(ActivityInstance экземпляр, исполнитель ActivityExecutor, BookmarkManager bookmarkManager) в System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor исполнитель, BookmarkManager bookmarkManager, Location resultLocation) ApplicationManager.cs(33, 0) Неожиданный символ '$' ApplicationManager.cs(33, 0); Ожидается,

Кажется, агент сборки не понимает новый синтаксис и все еще компилируется со старой версией.

Что я сделал, чтобы исправить это:

  • Установите Visual Studio 2015 на локальный сервер сборки (старая версия Visual Studio 2013 все еще установлена)

  • Перезагрузите контроллер сборки

  • Последующие шаги здесь: qaru.site/info/25022/...

В основном это установка Visual Studio 2015 и новых средств сборки Microsoft

  • И шаги в здесь, которые были очень многообещающими:

Я создал новое определение сборки с одним из шаблонов

Создал новый пул агентов через веб-доступ для Visual Studio Online. Загружено

ConfigureAgent.ps1 и выполнил его на сервере сборки, чтобы создать новый

агент. Но я не мог понять, как использовать вновь созданный агент.

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

относительно новой версии .NET?

Ответ 1

Я подозреваю, что вы запускаете агент Build Build 2013 еще? В этом случае откройте шаблон процесса сборки и найдите задачу "Запустить Msbuild для проекта". Установите свойство ToolPath в том месте, где установлен v14 MsBuild. Значение по умолчанию:

C:\Program Files (x86)\MSBuild\14.0\Bin

Это должно позволить вам использовать синтаксические элементы С# 6.

Удалите шаги из этого сообщения, удалив пакеты Roslyn nuget, пакет NuGet больше не нужен, так как Visual Studio 2015 является RTM. Тот же пакет больше не поддерживается для VS2013.

Новый загружаемый агент TFS 2015, который вы загрузили, не разговаривает с TFS 2013, также не работает агент сборки XFSL TFS 2015. Пока ваш сервер работает с TFS 2013, вы застряли с использованием TFS Build 2010 вплоть до 2013 года.

При подключении к VSO вы должны будете использовать новый агент сборки 2015. Но вам нужно создать новое определение сборки с помощью веб-интерфейса. Вы не можете использовать свое определение сборки XAML с новым агентом сборки.

Вы также можете установить агент XAML TFS 2015. Чтобы установить его установить TFS 2015 на сервер сборки и выполнить только шаги по настройке агента сборки XAML. Это приведет к удалению сервера сборки TFS 2013 с вашего компьютера.

Ответ 2

Я не могу установить свойство toolPath, потому что "Запустить Msbuild для проекта" заменяется более абстрактным "Run MSBuild" -Activity в моем используемом "TfvcTemplate.12.xaml". Я думаю, что это произошло с обновлением TFS 2013 Update 4.

Я установил VS 2015 на BuildMachine.

И я изменил сборки, добавив параметр /tv:14.0 в качестве аргумента MSBuild (в аргументах Build-Definition\Process\2.Build\5.Advanced\MSBuild)

Это сработало для меня. См. Ответ marson