В предыдущем вопросе я спросил об использовании xbuild для компиляции файла решения, но мне сказали, что он для этого не работает. NAnt кажется немного устаревшим. Какие еще есть варианты? Мне нужно что-то, что поддерживает зависимости между несколькими проектами.
Какова правильная система сборки для использования с Mono и несколькими проектами с зависимостями, за исключением MonoDevelop?
Ответы (4)
Я использую моно-транк (mono 2.6), и xbuild определенно стал гораздо более функциональным.
Я задавал аналогичный вопрос:
Это возможно ли собрать файлы MSBuild (visual studio sln) из командной строки в Mono?
И ответ (пока xbuild не будет завершен) mdtool.
Я не уверен, что есть только одна правильная система сборки. :-)
Я знаю, что команда 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.
xBuild был дерьмом еще 5 месяцев назад.
Я не знаю, изменилось ли это, но судя по тому, что MonoDevelop по-прежнему не будет его использовать, я бы сказал, что он остался прежним.
Я очень сомневаюсь, что какая-либо официальная сборка моно содержит функциональную сборку xbuild.
mdtool IMO - очень плохое решение, особенно. для таких людей, как я, создающих моноприложения на удаленных серверах, которые не имеют и НЕ БУДУТ иметь графические интерфейсы, необходимые для установки mdtool.
То, что я нашел рабочим решением, — это позволить MonoDevelop генерировать для вас скрипты automake и продолжать взламывать их вручную.
На самом деле это было не так уж плохо, как может показаться, и я даже сделал одно моно-приложение для синхронизации элементов из .csproj в файлы Makefile.am.