NAnt все еще поддерживается и подходит для .net 3.5 / VS2008? - PullRequest
27 голосов
/ 04 августа 2008

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

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

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

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

Ответы [ 7 ]

14 голосов
/ 05 августа 2008

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

Есть некоторые фундаментальные различия между ними, вероятно, лучше всего подчеркнутые этой беседой между некоторыми поклонниками NAnt и Microsoft 100 * *

.

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

5 голосов
/ 04 августа 2008

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

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

3 голосов
/ 04 августа 2008

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

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

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

1 голос
/ 29 августа 2008

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

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

1 голос
/ 04 августа 2008

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

0 голосов
/ 29 сентября 2008

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

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

0 голосов
/ 05 сентября 2008

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

...