Я использую MSBuild для создания своих продуктов. Я хочу использовать CruiseControl.net в качестве сервера сборки.
CCNET часто ссылается на nAnt, но похоже, что ccnet может делать большинство вещей, которые nant может делать через конфигурацию проекта и msbuild. Кроме того, nAnt кажется немного неподдерживаемым, с бета-версией, которой уже почти год.
Короче говоря: я вполне доволен MSBuild (тем более, что это "официальный" фронт-энд компилятора) и немного неудобен с nAnt, но я не хочу судить преждевременно.
Какие могут быть причины использовать nAnt вместо MSBuild? Особенно с ccnet, который, кажется, немного пересекается с nant по возможностям (и добавляет автоматическую сборку).
Если вы вполне счастливы с MSBuild, то я бы палку с MSBuild. Это может быть один из тех случаев, когда инструмент вы научитесь сначала вы предпочтете. Я начал с NAnt и может'т привыкнуть к MSBuild. Я'м уверены, что они будут вокруг в течение достаточно долгого времени.
Есть некоторые принципиальные различия между двумя, вероятно, лучше подсвечивается эту беседу между некоторым любителям Нант и Microsoftie.
Интересно, Джереми Миллер предложено в прошлом году прямо противоположный вопрос в своем блоге.
На мой взгляд, это скорее вопрос личных предпочтений. nAnt - отличный фреймворк, а MSBuild - почти такой же. Благодаря возможности легко разрабатывать пользовательские задачи (в обоих фреймворках) вы можете сделать практически все, что вам нужно.
Я не могу ответить на "все еще поддерживается" часть ваших вопросов, но я бы сказал, что если вам уже удобно работать с nAnt, то он, вероятно, подходит. Если вы (или кто-то из вашей группы) знакомы с MSBuild, то это тоже вполне подходящий вариант.
Если у вас уже есть куча пользовательских задач, которые вы используете с nAnt, придерживайтесь его - вы не получите многого от MSBuild. Тем не менее, кажется, что nAnt не может сделать ничего такого, чего не может MSBuild. Оба могут вызывать внешние инструменты, оба могут запускать пользовательские задачи на основе .Net, и оба имеют кучу задач сообщества.
Мы используем MSBuild по той же причине, что и вы - это система сборки по умолчанию для VS сейчас, и у нас не было никаких специфических для nAnt вещей, о которых стоило бы беспокоиться.
Задачи MSBuildCommunityTasks - это хорошая база сторонних задач для начала, она охватывает большинство пользовательских вещей, которые я когда-либо делал в nAnt, включая поддержку VSS и Subversion.
Честно говоря, это зависит от того, что лучше впишется в вашу среду. Если вы используете много инструментов, не относящихся к Microsoft, nunit, ccnet, ncover. Вы, вероятно, найдете лучшую поддержку в nant. Если же вы используете MSTest, TFSBuild, то MSBuild, вероятно, будет более подходящей средой. Я бы изучил оба варианта и использовал тот, который лучше вписывается в вашу среду.
CC.NET просто сервер создать технологии, не технологии построения сценария. Мы используем CC.NET на работе очень удачно называть построения MSBuild скрипты без проблем.
Нант-это более старая и более зрелым построить скриптовый язык, но они оба похожи в том, как они работают. Есть очень мало вещей, которые я мог сделать в Нанте, что я могу'т также в MSBuild, так что это действительно сводится к тому, что вы больше устраивает. По мере того, как активный Нант является, Дон'т пойти на, когда последний релиз был...вместо того, чтобы пойти, когда последние ночные сборки был. Нант имеет тенденцию идти долгое время между релизами, но ночные сборки, как правило, довольно стабильны.
Нравится, что так много людей уже указал, здесь ответ "это зависит на". Есть некоторые вещи, как повторяющиеся операции, что гораздо проще и чище в Нанте. Вижу форумы MSDN для обсуждения этого.
Я считаю, что вы также можете использовать гибридный подход, особенно в крупных проектах. Будучи преобразован в MSBuild, когда разработаны новые компоненты, многие из наших Нант скрипты. Обе поддерживают одинаковые основные особенности и могут звонить друг другу, если вы найдете задачу, которая нативно поддерживается в один, но не другой.
Для новых .Net-разработки, начиная с MSBuild может спасти вас много времени, так как он может запускать файлы решение напрямую. Простирается от главной компиляция для выполнения других задач (управления исходным кодом, развертывания, и т. п.) достаточно хорошо работает.