NAnt или MSBuild, какой выбрать и когда? - PullRequest
159 голосов
/ 24 января 2009

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

Когда нужно выбирать NAnt вместо MSBuild? Какой из них лучше для чего? Подходит ли NAnt для проектов дома / с открытым исходным кодом и MSBuild для рабочих проектов? Какой опыт у любого из двух?

Ответы [ 14 ]

1 голос
/ 24 января 2009

Я недавно перешел с NAnt на MSBuild из-за его способности создавать VS-решения. Я все еще иногда использую NAnt.

Вы также можете проверить Задачи сообщества MSBuild , что похоже на NAntContrib.

0 голосов
/ 18 октября 2017

Мы используем FlubuCore. Это библиотека C # с открытым исходным кодом для построения проектов и выполнения сценариев развертывания с использованием кода C #.

Простой пример использования flubu:

protected override void ConfigureTargets(ITaskContext session)
{           

    var compile = session.CreateTarget("compile")
        .SetDescription("Compiles the solution.")
        .AddTask(x => x.CompileSolutionTask())
        .DependsOn("generate.commonassinfo");
}

Вы можете найти больше информации о flubu и как начать здесь: выбор-для-сборки-инструмента MSBuild-Нан-или-что-то-то еще

0 голосов
/ 25 мая 2013

YDeliver от Manoj - это фреймворк для сборки, построенный на основе PSake. Он имеет богатый набор библиотечных функций, возможность определять рабочие процессы, и мы использовали его для доставки более шести корпоративных проектов в производство.

Используйте его вместе с TeamCity , CruiseControl или любым, что может работать PowerShell .

0 голосов
/ 14 июля 2010

Мы используем оба. NAnt отвечает за все "скриптовые" вещи, такие как копирование, развертывание на IIS , создание пакетов, а MSBuild отвечает за построение решения. Тогда мы сможем избежать проблем с неподдерживаемым .NET 4.0 с помощью новой версии NAnt.

NAnt также более масштабируемый. Если мы хотим перенести сценарии развертывания на рабочие серверы, мы только копируем файл сборки и устанавливаем правильную версию .NET - никаких проблем Visual Studio с файлами csproj:)

...