Опыт разработки с использованием MSBuild / Nant vs Visual Studio 2005/2008 - PullRequest
2 голосов
/ 22 мая 2009

Я работаю над проектом с 4 другими разработчиками. В настоящее время мы используем Visual Studio для построения нашего решения с некоторыми событиями до и после сборки.

Я бы хотел перейти на более мощную систему сборки, такую ​​как Nant или MsBuild.

Каковы плюсы и минусы двух подходов?

Как опыт разработчика использует Nant / MsBuild? Легко ли отладить приложение, нажав F5? Есть ли еще хороший список файлов в обозревателе решений? Или мне нужно входить в файл XML каждый раз, когда мне нужно добавить файл .cs в мой проект?

Как все это интегрируется с Source Control? (В настоящее время я использую SourceGear Vault.)

Я пытаюсь собрать достаточно информации, чтобы я мог принять обоснованное решение.

Ответы [ 6 ]

3 голосов
/ 22 мая 2009

На что стоит обратить внимание. Если вы используете VS2005 или более позднюю версию, за исключением C ++, вы уже используете MsBuild. Файлы .csproj и .vbproj на самом деле являются файлами MsBuild. VS хост MsBuild, чтобы сделать сборку.

Я не могу предоставить много / никаких отзывов о Нант.

2 голосов
/ 22 мая 2009

Предыстория: я проделал большую работу с Ant, намного больше работал с make до и после этого (на очень больших системах - подумайте о десятках тысяч строк make-файлов для миллионов строк кода), и склонны регулярно взламывать специализированные системы сборки. И, о да, я ненавижу большинство инструментов MS.

Я не могу рекомендовать системы сборки типа Ant. Мне больно так говорить, но вам, вероятно, лучше придерживаться Visual Studio. Nant заберет много аккуратных вещей типа GUI, к которым вы привыкли, и вряд ли даст вам много взамен.

Большая часть проблемы, вероятно, большая ее часть, заключается в этом чертовом XML. (Ну, на самом деле это даже не XML; попробуйте написать DTD для скрипта сборки Ant.) Джеймс Дункан Дэвидсон (создатель Ant) несколько раз заявлял , что использование XML для Ant было ошибкой, и Кен Арнольд в своих беседах с Дуканом Дэвидсоном, похоже, говорит , что Дукан Дэвидсон немного стесняется сказать.

Арнольд перефразирует Джеймса Гослинга: «Каждый файл конфигурации становится языком программирования, так что вы могли бы так же подумать».

Я полностью понимаю, что у вас очень, очень плохой "язык программирования" сейчас, когда речь идет о создании ваших проектов под VS, и я счастлив и впечатлен, что вы хотите это исправить. К сожалению, Нант не поможет вам в этом.

2 голосов
/ 22 мая 2009

Я использую nant для своих скриптов сборки и считаю его надежным и хорошо поддерживаемым. На этом этапе msbuild и nant кажутся даже во многих отношениях. Msbuild имеет некоторые преимущества в том, что он используется Visual Studio, поэтому он является встроенной частью платформы. Тем не менее, nant обладает множеством функциональных возможностей, задачами надстроек и большим сообществом, поскольку он существует дольше.

Nant имеет плагины для большинства всех поставщиков управления исходным кодом - , включая Vault - и имеет хуки для большинства инструментов сборки, таких как CruiseControl.NET и TeamCity.

Опыт разработчика немного отличается от простого нажатия клавиши F5. Как правило, файлы nant или msbuild включают в себя множество функций, которые вы обычно не выполняете во время обычной быстрой компиляции. Сценарии используются для запуска тестов, запуска инструментов сборки (таких как FxCop или StyleCop), обновления / фиксации рабочих копий, тегирования исходного кода, создания / обновления / заполнения баз данных и сборки установщиков или пакетов. Не все эти вещи выполняются на каждой компиляции. Именно здесь инструменты сценариев сборки обеспечивают наибольшую выгоду и не входят в компетенцию Visual Studio.

Я думаю, что вы будете счастливы с любым из них. Если вы используете в основном инструменты MS, msbuild может быть более плавным. С другой стороны, nant может быть хорошим выбором, если вы используете много инструментов с открытым исходным кодом, которые часто используют nant.

1 голос
/ 23 мая 2009

Раньше я использовал Nant, совсем недавно я привык использовать MSBuild.

Как и вы, я также являюсь пользователем Vault Sourcegear, и, как вы обнаружите, для Vault нет задач MSBuild .... или есть?

У меня есть исходный код для некоторых задач MSBuild для использования с Vault. Они работают довольно хорошо и основаны на порте из задач NANT (на какой момент / дату я точно не знаю).

Они пришли в мое владение от парня, который сделал портирование и намеревался открыть их с помощью SourceForge / CodePlex или чего-то подобного. Но, увы, он женился, а потом не мог быть обеспокоен.

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

Если кто-то заинтересован в них, я очень рад, что они идут в лучший дом

: р

http ==> img269.imageshack.us/img269/4467/msbuildsourcegearvaultt.png

1 голос
/ 22 мая 2009

Используйте CruiseControl.NET для автоматизации вашего процесса сборки. MSBuild проще подключить, чем NANT, MSBuild находится в папке .NET Framework. УGear есть плагины для CruiseControl.NET, есть плагины задач, которые вы можете написать и скачать для MSBuild ....

0 голосов
/ 22 мая 2009

Нашел полезную тему по Nant против MsBuild здесь .

...