2008-11-02 7 views
1

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

ответ

2

Я использую моно-багажник (mono 2.6), и xbuild определенно гораздо более способна сейчас.

2

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

Я знаю, что команда 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.

3

Я задавал подобный вопрос:

Is it possible to build MSBuild files (visual studio sln) from the command line in Mono?

И ответ (пока xbuild не завершена) является mdtool.

+0

Я нашел mdtool в /Applications/Monodevelop.app/Contents/MacOS, но когда я запускаю его, я получаю это: mdtool: линия 53:/TMP/build_deps/bin/моно: Нет такого файла или справочник Любые идеи? – 2008-11-04 20:01:20

0

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

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

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

mdtool IMO - очень плохое решение, особенно. для таких людей, как я, создание моно приложений на удаленных серверах, которые этого не делают, и НЕ СУЩЕСТВУЮТ рамки GUI, необходимые для установки mdtool.

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

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

+1

MonoDevelop поддерживал синхронизацию списков файлов и списков ссылок между Makefile/Makefile.am и csproj/mdp в течение некоторого времени: http://monodevelop.com/Download/MonoDevelop_1.0_Released#Makefile_Support Мы используем это для самой MonoDevelop. Мы также добавили опцию MonoDevelop для делегирования сборки в xbuild. Долгосрочный план - это xbuild для замены внутренней системы сборки MonoDevelop. – 2009-08-03 16:18:25