TeamCity использует неправильный исполняемый файл MSBuild?

Я создаю файл MSBuild и использую его с MSBuild Build Runner в TeamCity (5.0.2 (сборка 10784)), но я не думаю, что на нем работает правильная версия MSBuild, потому что я продолжаю получать следующую ошибку:

ошибка MSB5014: версия формата файла не распознана. MSBuild может читать файлы решений только между версиями 7.0 и 9.0 включительно.

Я новичок в TeamCity, поэтому не знаю, с чего начать, чтобы посмотреть, как это настроить. Как вы можете видеть на снимке экрана ниже, я выбрал версию 4.0 на экране конфигурации средства запуска сборки.

Конфигурация сборки


person senfo    schedule 21.02.2010    source источник
comment
Вы понимаете, что .NET 4.0 все еще находится в стадии бета-тестирования? Вы уверены, что не хотите 3.5 или 2.0?   -  person TrueWill    schedule 21.02.2010
comment
Ага... Я создаю серию демонстраций коричневых сумок, посвященных VS2010. Большой процент аудитории незнаком с непрерывной интеграцией, поэтому я также создаю демонстрацию CI, чтобы представить ее группе. Поскольку они уже знакомы с моим проектом (включая модульные тесты), я предпочитаю использовать тот же демонстрационный проект, который я использовал в других демонстрациях.   -  person senfo    schedule 21.02.2010


Ответы (2)


Судя по ошибке, похоже, что конфигурация Team City/MSBuild не поддерживает VS2010. Решения для VS2010 — это версия 10.0, где, как указывает ошибка, поддерживаются только версии от 7.0 до 9.0.

Здесь находится ветка форума, в которой обсуждается создание проектов VS2010 с использованием TeamCity.

person smaclell    schedule 21.02.2010
comment
Вот и все! Большое Вам спасибо. - person senfo; 21.02.2010

Извлечение ответа из ветки форума:

Проблема исправлена ​​в TeamCity 5.1, но есть хак, чтобы заставить ее работать в 5.0.

По сути, вам нужно переопределить механизм, который устанавливает путь к MSBuild.exe на основе версии .NET Framework, указанной в части запуска сборки в конфигурации сборки.

Для этого создайте переменную среды «MSBuild» и задайте для нее значение %system.DotNetFramework4.0_x86_Path% (это переменная, автоматически создаваемая исполнителем сборки, когда он обнаруживает, что у него установлена ​​.NET 4.0).

Переменная может быть либо создана на агенте, в файле buildAgent.properties, в этом случае она должна называться "env.MSBuild", и поскольку она определена глобально, она повлияет на все проекты, построенные на этом агенте сборки.

Или его можно создать внутри самой конфигурации сборки (тогда имя будет просто «MSBuild») — в этом случае оно будет применяться только к этой конфигурации сборки.

person zvolkov    schedule 15.04.2010