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