TeamCity Использует неправильный исполняемый файл MSBuild?
Я создаю файл MSBuild и использую его вместе с MSBuild Build Runner в TeamCity (5.0.2 (сборка 10784)), но я не думаю, что он работает с верной версией MSBuild, потому что я продолжаю получать следующую ошибку:
ошибка MSB5014: версия формата файла не распознана. MSBuild может читать файлы решения только между версиями 7.0 и 9.0 включительно.
Я новичок в TeamCity, поэтому не знаю, с чего начать, как это настроить. Как вы можете видеть на скриншоте ниже, я выбрал версию 4.0 на экране конфигурации сборщика.
2 ответа
Судя по ошибке, похоже, что конфигурация Team City/MSBuild не поддерживает VS2010. Решения для VS2010 - это версия 10.0, в которой, как указывает ошибка, поддерживается только версия от 7.0 до 9.0.
Вот ветка форума, посвященная созданию проектов VS2010 с использованием TeamCity.
Извлечение ответа из ветки форума:
Проблема исправлена в TeamCity 5.1, но есть взлом, чтобы заставить его работать в 5.0
По сути, вам необходимо переопределить механизм, который устанавливает путь к MSBuild.exe в зависимости от версии.NET Framework, указанной в части сборки сборки в сборке сборки.
Для этого создайте переменную среды "MSBuild" и установите для нее значение%system.DotNetFramework4.0_x86_Path% (это переменная, автоматически генерируемая сборщиком сборок, когда он обнаруживает, что на нем установлен.NET 4.0)
Переменная может быть создана на агенте в файле buildAgent.properties, в этом случае она должна называться "env.MSBuild", и, поскольку она определена глобально, она повлияет на все проекты, созданные на этом агенте сборки.
Или его можно создать внутри самой конфигурации сборки (тогда имя будет просто "MSBuild") - в этом случае он будет применяться только к этой конфигурации сборки.