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

StackOverflow https://stackoverflow.com/questions/1300

  •  08-06-2019
  •  | 
  •  

Вопрос

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

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

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

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

Это было полезно?

Решение

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

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

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

Другие советы

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

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

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

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

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

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top