TFS 2013, сборка.NET 4.6 / C# 6.0

Мы используем TFS 2013 в качестве нашего сервера сборки. Я запустил проект на C# 6.0 и пытаюсь его собрать. Я использую новые нулевые условные операторы, и моя сборка дросселей. Я попытался установить несколько вещей на сервере TFS, включая пакет таргетинга и VS 2015. Я попытался предоставить /tv:14.0 для аргументов MSBuild.

Configuration \ EntityEntityConfig.cs (270): недопустимый термин выражения '.'
Configuration \EntityEntityConfig.cs (283): недопустимый термин выражения '.'
Конфигурация \EntityEntityConfig.cs (283): синтаксическая ошибка, ожидается ':'
... так далее.

На данный момент я понятия не имею, что еще попробовать. Любые предложения будут ценны.

6 ответов

Решение

Люди, использующие TFS 2012, сообщили об успехе, используя:

/tv:14.0 /p:GenerateBuildInfoConfigFile=false /p:VisualStudioVersion=14.0

в качестве аргументов в MSBuild. Возможно, это может работать для вас, но до сих пор это не работает для моих агентов сборки TFS 2013.

Обновление: я наконец получил это, чтобы работать на TFS 2013. Вот что я должен был сделать:

  1. Установите VS 2015 или Microsoft Build Tools 2015 (у меня есть оба).
  2. Отредактируйте мою сборку, чтобы использовать шаблон процесса сборки под названием TfvcTemplate.12.xaml. Я думаю, что любой шаблон, более новый, чем этот, подойдет, но DefaultTemplate.11.1.xaml определенно не будет работать!)
  3. Установите аргументы MSBuild в /tv:14.0. Мне не нужно было использовать два других, упомянутых выше.

Кажется, что аргумент команды /tv:14.0 не работает должным образом. Смотрите: BuildActivity игнорирует ToolsVersion

В качестве обходного пути вам нужно настроить шаблон процесса сборки:

  1. Откройте шаблон в Visual Studio и найдите действие " Выполнить MSBuild for Project MSBuild".
  2. Установите ToolVersion на "14,0".
  3. Установите для параметра ToolPath значение MSBuild14 (по умолчанию: "C:\Program Files (x86)\MSBuild\14.0\Bin").
  4. Отметьте этот шаблон процесса сборки и поставьте его в очередь.

Если вы решите установить VS 2015 на сборочный компьютер, то есть важный шаг: откройте его для первого использования и убедитесь, что он лицензирован. В противном случае вы будете продолжать испытывать сбои сборки.

Если вы запустите DefaultTempalte.11.1.xaml, найдите действие msbuild (в этом шаблоне их 2, а их метка - "Запустить MSBuild for Project") и измените свойство ToolPath на путь набора инструментов msbuild (для меня это было "C:\Program Files (x86)\MSBuild\14.0\Bin").

Больше ничего не нужно.

Если вы используете UpgradeTemplate.xml, просто измените "Запустить TfsBuild for Configuration Folder":

1.Установите путь к ToolPath для MSBuild14 (по умолчанию: "C: \ Program Files (x86) \ MSBuild \ 14.0 \ Bin").

2.Проверьте этот шаблон процесса сборки и поставьте его в очередь.

Спасибо!

Процесс сборки определяет, какую версию инструментов сборки вы используете. В определении стандартной сборки используется шаблон процесса сборки DefaultTemplate.11.1.xaml, который настроен для использования инструментов сборки 2013.

Самый быстрый способ исправить это - просто переключиться на "TfvcTemplate.12.xaml"

Выберите шаблон

Если вы хотите изменить шаблон по умолчанию, вам нужно проверить его в $/[Project]/BuildProcessTemplates/DefaultTemplate.11.1.xaml, а затем отредактировать аргументы, чтобы установить BuildProcessVersion

Изменить версию процесса сборки

Другие вопросы по тегам