MSBuild mit Visual Studio integriert gibt Programmierer weniger Reibung das Build-System zu verwenden. Es kommt hauptsächlich darauf an, dass sie nur "Build Solution" gehen müssen, und alles funktioniert, anstatt Custom Build Steps und andere solche Dinge zu verwenden, oder, schlimmer noch, Entwickler zu zwingen, Builds zu starten, indem sie eine Art externes Skript starten.
Jetzt tendiere ich meistens MSBuild über NAnt, weil es einfacher ist. Sicher, NAnt hat viel mehr Funktionen, ist leistungsfähiger, etc., aber es kann schnell außer Kontrolle geraten. Wenn Sie und Ihre Entwickler die Disziplin haben, die NAnt-Skripte einfach zu halten, dann ist alles in Ordnung. Ich habe jedoch gesehen, dass zu viele NAnt-basierte Systeme nach Süden gehen, wo niemand mehr versteht, was es tut, und es gibt keine echte Möglichkeit, es zu debuggen, abgesehen davon, dass es das Äquivalent eines guten alten Drucks ist. In dem Moment, in dem du anfängst, irgendeine if/else-Anweisung oder for-Schleife zu verwenden, beginnt es, IMHO, zu riechen.
Auf der anderen Seite hat MSBuild eine solide Grundlage basierend auf Metadaten und eine weniger wortreiche Syntax. Seine Einfachheit (oder das Fehlen von Features ... abhängig davon, wie Sie es sehen) zwingt Sie, Logik in .NET-Code über neue Aufgaben zu schreiben, anstatt Logik in XML-Markup zu schreiben. Dies fördert die Wiederverwendbarkeit und ermöglicht Ihnen vor allem, Ihr Build-System in einem echten Debugger zu debuggen.
Das einzige Problem mit MSBuild ist der nicht-gelegentliche Fehler (vor allem in der ersten Version) oder obskuren (obwohl dokumentiert) Verhalten. Und wenn Sie das wirklich stört, ist es mit Microsoft verbunden.
http://stackoverflow.com/questions/476163/nant-or-msbuild-which-one-to-choose-and-when – webwesen
webwesen hat entdeckte ein rekursives Loch in diesem Universum, das einen Verweis auf eine Frage enthielt, die nicht existiert hatte, sollte es nicht anders sein? – DevelopingChris