Одним из главных преимуществ MSBuild для меня (на платформах Windows) является то, что он входит в состав самого .NET. Это означает, что на любой машине с Windows, на которой установлено обновление Windows, будет доступен MSBuild. Добавьте к этому тот факт, что компилятор C # также является частью самого .NET, и у вас есть платформа, которая может создавать проекты на чистых машинах. Не нужно устанавливать бегемот Visual Studio. NAnt, с другой стороны, должен быть явно установлен, прежде чем сборка может быть запущена.
Просто для записи, в прошлом я использовал NMake, Make, Ant, Rake, NAnt и MSBuild для нетривиальных сборок (в таком порядке). Мой любимый MSBuild, руки вниз (и я не одобряю его, потому что «это то, что Visual Studio использует»). ИМХО, это очень недооцененный инструмент для сборки.
Я бы сравнил NAnt и MSBuild с разницей между процедурным и функциональным программированием. NAnt довольно прост, и вы получите то, что видите. MSBuild, с другой стороны, требует немного больше мысли. Кривая обучения круче. Но как только вы «получите это», вы сможете делать с ним удивительные вещи.
Поэтому я бы порекомендовал взглянуть на MSBuild, если вы также стремитесь к программированию в функциональном или логическом стиле - если вы готовы потратить немного времени и усилий, прежде чем увидите ощутимые результаты (конечно, я также твердо верю, что в конечном итоге инвестиции окупятся вы можете делать более мощные вещи более эффективно).