2010-02-21 3 views
7

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

error MSB5014: File format version is not recognized. MSBuild can only read solution files between versions 7.0 and 9.0, inclusive.

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

Build Configuration

+0

Вы понимаете, что .NET 4.0 все еще находится в стадии бета-тестирования, не так ли? Вы уверены, что не хотите 3.5 или 2.0? – TrueWill

+0

Да ... Я строю серию демонов с коричневой сумкой, окруженную VS2010. Значительная часть аудитории не знакома с Continuous Integration, поэтому я также создаю демо CI, чтобы представить ее группе. Поскольку они уже знакомы с моим проектом (включая модульные тесты), я предпочитаю использовать тот же демонстрационный проект, который я использовал в других демонстрационных версиях. – senfo

ответ

5

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

Here - это тема форума, обсуждающая проекты VS2010 с использованием TeamCity.

+0

Вот и все! Большое спасибо. – senfo

4

Распаковка ответ от the forum thread:

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

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

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

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^