Сборка решения C# (Mono) из GitHub с помощью TeamCity на CentOS

Я пытаюсь заставить TeamCity делать для меня автоматические сборки на CentOS, однако, если я создаю бегун типа «MSBuild», я получаю следующую ошибку

Failed to start MSBuild.exe. Failed to find msbuild.exe at path: /usr/lib/mono/4.0/xbuild.exe

Я попробовал тип бегуна «Visual Studio (sln)», установив для Visual Studio значение 2012, и получил следующую ошибку.

No enabled compatible agents for this build configuration.

Когда я смотрю на свои требования к агенту, я вижу:

Unmet requirements: DotNetFramework4.5_x86 exists

Я честно понятия не имею, что может быть не так. Mono запущен и работает на этом компьютере, так как на нем размещен веб-сайт, созданный с помощью Mono. Может ли кто-нибудь с немного большим опытом сообщить мне, что я сделал неправильно, пожалуйста?

[РЕДАКТИРОВАТЬ]

Я только что попытался создать символическую ссылку, где на самом деле находится xbuild, туда, где этого хочет TeamCity.

ln -s /usr/bin/xbuild /usr/lib/mono/4.0/xbuild.exe

Теперь я получаю следующую ошибку в журнале сборки, поэтому я думаю, что ему не нравятся символические ссылки.

[MSBuild output] Cannot open assembly '/usr/lib/mono/4.0/xbuild.exe': File does not contain a valid CIL image.

person JustinN    schedule 27.10.2013    source источник
comment
Вы пробовали читать это: confluence.jetbrains.com/display/TCD8/Mono+Support Что говорят о поддержке моно?   -  person Welsh    schedule 28.10.2013
comment
Я читал это, однако для меня это выглядит как способ изменить место, где живет Моно. Путь имеет правильный путь для самого Mono, однако путь xbuild — нет, кроме того, xbuild на моей машине — это xbuild, а не xbuild.exe. Можно ли изменить, где он ищет только xbuild?   -  person JustinN    schedule 28.10.2013
comment
Я решил эту проблему, вызвав вместо этого командную строку с аргументами, однако я оставлю этот вопрос открытым, так как хотел бы знать, есть ли решение для моего исходного вопроса.   -  person JustinN    schedule 29.10.2013


Ответы (1)


Я смог обойти это, добавив переменную среды в файл buildAgent.properties в агенте сборки. Как только вы найдете этот файл, добавьте что-то вроде этого в раздел «Переменные среды»:

env.MSBuild=/usr/local/lib/mono/xbuild/12.0/bin/ 

Я делал это с Ubuntu, так что этот путь может не совпадать с тем, что вы искали.

person Kyle Sonaty    schedule 02.09.2014
comment
Я не знаю, почему я никогда не думал об этом раньше, но это действительно работает! Очевидно, что путь варьируется от ОС к ОС, но решение остается тем же, спасибо! - person JustinN; 29.09.2014