Поддерживается ли nAnt и подходит ли он для .net 3.5 / VS2008?

Я использую MSBuild для создания своих материалов. Я хочу использовать CruiseControl.net как Build Server.

Сейчас CCNET часто ссылается на nAnt, но похоже, что ccnet может делать большую часть того, что nant может делать через конфигурацию проекта и msbuild. Кроме того, nAnt кажется немного неподдерживаемым, с бета-версией, которой уже почти год.

Короче: я на самом деле вполне доволен MSBuild (тем более, что это "официальный" интерфейс компилятора) и немного неудобен с nAnt, но я не хочу судить преждевременно.

Каковы были бы причины использовать nAnt вместо MSBuild? Особенно с ccnet, который, похоже, немного перекрывается с nant с точки зрения функций (и добавления материалов, связанных с автоматической сборкой)


person Michael Stum    schedule 04.08.2008    source источник


Ответы (7)


Если вас вполне устраивает MSBuild, я бы остановился на MSBuild. Это может быть один из тех случаев, когда вы предпочтете инструмент, который вы изучаете первым. Я начал с NAnt и никак не могу привыкнуть к MSBuild. Я уверен, что они оба будут еще какое-то время.

Между ними есть некоторые фундаментальные различия, которые, вероятно, лучше всего подчеркиваются этот разговор между фанатами NAnt и Microsoft.

Интересно, что Джереми Миллер задал прямо противоположный вопрос в своем блоге в прошлом году.

person Brad Tutterow    schedule 04.08.2008

На мой взгляд, это больше вопрос личных предпочтений. nAnt - отличный фреймворк, и MSBuild почти не уступает ему по возможностям. Благодаря способности легко разрабатывать собственные задачи (в обеих средах) вы можете выполнять практически все, что вам нужно.

Я не могу ответить на часть ваших вопросов «все еще поддерживается», но я бы сказал, что если вы уже знакомы с nAnt, то это, вероятно, жизнеспособно. Если вы (или кто-то из вашей группы) знаком с MSBuild, то это тоже отличный способ.

person palehorse    schedule 04.08.2008

Если у вас уже есть набор настраиваемых задач, которые вы используете с nAnt, придерживайтесь его - вы не получите многого с MSBuild. Тем не менее, похоже, что nAnt не может делать ничего такого, чего не может делать MSBuild по своей сути. Оба могут вызывать внешние инструменты, оба могут запускать настраиваемые задачи на основе .Net, и у обоих есть куча задач сообщества.

Мы используем MSBuild по той же причине, что и вы - сейчас это система сборки по умолчанию для VS, и у нас не было никаких специфических для nAnt вещей, о которых нужно было беспокоиться.

MSBuildCommunityTasks - хорошая сторонняя база задач для начала и охватывает большинство настраиваемых вещей, которые я когда-либо сделал в nAnt, включая поддержку VSS и Subversion.

person Greg Hurlman    schedule 04.08.2008

CC.NET - это просто технология сервера сборки, а не технология сценария сборки. Мы используем CC.NET в работе, чтобы без проблем вызывать сценарии сборки MSBuild.

NAnt - более старый и зрелый язык сценариев сборки, но оба они похожи по принципу работы. Есть очень мало вещей, которые я мог бы делать в NAnt, чего я не могу делать и в MSBuild, так что все сводится к тому, что вам удобнее. Что касается того, насколько активен NAnt, не уходите в прошлое, когда была последняя версия ... вместо этого пройдите, когда была последняя ночная сборка. В NAnt обычно проходит много времени между выпусками, но ночные сборки обычно довольно стабильны.

person Scott Dorman    schedule 29.08.2008

Честно говоря, это зависит от того, что лучше подходит для вашей среды. Если вы используете много инструментов сторонних производителей, nunit, ccnet, ncover. Вероятно, вы найдете лучшую поддержку с помощью nant. В качестве альтернативы, если вы используете MSTest, TFSBuild, вы, вероятно, найдете MSBuild лучшей средой. Я бы изучил оба варианта и использовал тот, который лучше всего подходит для вашей среды.

person Nick Berardi    schedule 04.08.2008

Как и на то, что уже указали многие люди, ответ здесь - «в зависимости от обстоятельств». В NAnt есть такие вещи, как повторение операций, которые намного проще и понятнее. См. форумы MSDN для обсуждения этого.

person Community    schedule 04.09.2008

Я считаю, что вы также можете использовать гибридный подход, особенно в более крупных проектах. Многие наши сценарии nant конвертируются в msbuild при разработке новых компонентов. Оба поддерживают одни и те же основные функции и могут вызывать друг друга, если вы найдете задачу, которая изначально поддерживается в одном, но не поддерживается в другом.

При разработке новых .NET запуск с MSBuild может сэкономить много времени, поскольку он может запускать файлы решения напрямую. Расширение основной компиляции для выполнения других задач (контроль версий, развертывание и т. Д.) Работает достаточно хорошо.

person Rob Hunter    schedule 29.09.2008