Какова правильная система сборки для использования с Mono и несколькими проектами с зависимостями, за исключением MonoDevelop?

В предыдущем вопросе я спросил об использовании xbuild для компиляции файла решения, но мне сказали, что он для этого не работает. NAnt кажется немного устаревшим. Какие еще есть варианты? Мне нужно что-то, что поддерживает зависимости между несколькими проектами.


person Adrian Anttila    schedule 02.11.2008    source источник


Ответы (4)


Я использую моно-транк (mono 2.6), и xbuild определенно стал гораздо более функциональным.

person Guy van den Berg    schedule 06.12.2009

Я задавал аналогичный вопрос:

Это возможно ли собрать файлы MSBuild (visual studio sln) из командной строки в Mono?

И ответ (пока xbuild не будет завершен) mdtool.

person Kris Erickson    schedule 02.11.2008
comment
Я нашел mdtool в /Applications/Monodevelop.app/Contents/MacOS, но когда я его запускаю, я получаю следующее: mdtool: строка 53: /tmp/build_deps/bin/mono: Нет такого файла или каталога Есть идеи? - person Adrian Anttila; 04.11.2008

Я не уверен, что есть только одна правильная система сборки. :-)

Я знаю, что команда Mono использует make для сборки MonoDevelop и что MonoDevelop использует make под прикрытием для создания проектов, созданных MonoDevelop (http://tirania.org/blog//texts/md-build.html).

Тем не менее, есть также xBuild (http://www.mono-project.com/Microsoft.Build), который представляет собой механизм сборки, совместимый с MSBuild, созданный командой mono. На самом деле это может быть лучшим инструментом, поскольку он позволит вам создавать свои проекты на платформе Microsoft .NET в дополнение к Mono. Эта ссылка (http://go-mono.com/forums/#nabble-td15680662) также говорит о переходе MD на MSBuild.

person Jeremy Wiebe    schedule 02.11.2008

xBuild был дерьмом еще 5 месяцев назад.

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

Я очень сомневаюсь, что какая-либо официальная сборка моно содержит функциональную сборку xbuild.

mdtool IMO - очень плохое решение, особенно. для таких людей, как я, создающих моноприложения на удаленных серверах, которые не имеют и НЕ БУДУТ иметь графические интерфейсы, необходимые для установки mdtool.

То, что я нашел рабочим решением, — это позволить MonoDevelop генерировать для вас скрипты automake и продолжать взламывать их вручную.

На самом деле это было не так уж плохо, как может показаться, и я даже сделал одно моно-приложение для синхронизации элементов из .csproj в файлы Makefile.am.

person damageboy    schedule 05.11.2008
comment
MonoDevelop уже некоторое время поддерживает синхронизацию списков файлов и списков ссылок между Makefile/Makefile.am и csproj/mdp: monodevelop.com/Download/ Мы используем его для самого MonoDevelop. Мы также только что добавили возможность для MonoDevelop делегировать сборку xbuild. Долгосрочный план состоит в том, чтобы xbuild заменил внутреннюю систему сборки MonoDevelop. - person Mikayla Hutchinson; 03.08.2009