Frage

Ich verwende MSBuild, um meine Sachen zu erstellen.Ich möchte CruiseControl.net als Build Server verwenden.

Nun bezieht sich CCNET oft auf nAnt, aber es sieht so aus, als ob ccnet die meisten Dinge tun kann, die Nant über die Projektkonfiguration und msbuild tun könnte.Außerdem scheint nAnt etwas nicht unterstützt zu werden, da die Beta-Version mittlerweile fast ein Jahr alt ist.

Zusamenfassend:Eigentlich bin ich mit MSBuild recht zufrieden (vor allem, da es das „offizielle“ Compiler-Frontend ist) und fühle mich mit nAnt etwas unwohl, aber ich möchte nicht voreilig urteilen.

Was wären Gründe für die Verwendung von nAnt gegenüber MSBuild?Vor allem mit ccnet, das sich in Bezug auf die Funktionen (und das Hinzufügen der automatisierten Build-bezogenen Dinge) ein wenig mit nant zu überschneiden scheint.

War es hilfreich?

Lösung

Wenn Sie mit MSBuild ganz zufrieden sind, würde ich bei MSBuild bleiben.Dies kann einer der Fälle sein, in denen Sie das Werkzeug, das Sie zuerst erlernen, bevorzugen werden.Ich habe mit NAnt angefangen und kann mich nicht ganz an MSBuild gewöhnen.Ich bin mir sicher, dass es beide noch eine ganze Weile geben wird.

Es gibt einige grundlegende Unterschiede zwischen den beiden, die wahrscheinlich am besten hervorgehoben werden dieses Gespräch zwischen einigen NAnt-Fans und einem Microsoftie.

Interessant, Jeremy Miller habe genau das Gegenteil gefragt auf seinem Blog letztes Jahr.

Andere Tipps

Meiner Meinung nach ist es eher eine Frage der persönlichen Vorlieben.nAnt ist ein großartiges Framework und MSBuild ist fast genauso leistungsfähig.Mit der Möglichkeit, problemlos benutzerdefinierte Aufgaben zu entwickeln (in beiden Frameworks), können Sie fast alles erledigen, was Sie tun müssen.

Ich kann den Teil Ihrer Fragen, der „immer noch unterstützt“ nicht beantworten, aber ich würde sagen, wenn Sie bereits mit nAnt vertraut sind, ist es wahrscheinlich machbar.Wenn Sie (oder jemand in Ihrer Gruppe) mit MSBuild vertraut sind, ist dies ebenfalls ein guter Weg.

Wenn Sie bereits eine Reihe benutzerdefinierter Aufgaben haben, die Sie mit nAnt verwenden, bleiben Sie dabei – mit MSBuild gewinnen Sie nicht viel.Allerdings scheint es nichts zu geben, was nAnt kann, was MSBuild im Kern nicht kann.Beide können externe Tools aufrufen, beide können .Net-basierte benutzerdefinierte Aufgaben ausführen und beide verfügen über eine Reihe von Community-Aufgaben.

Wir verwenden MSBuild hier aus demselben Grund wie Sie – es ist jetzt das Standard-Build-System für VS und wir mussten uns um keine nAnt-spezifischen Dinge kümmern.

Der MSBuildCommunityTasks sind für den Anfang eine gute Aufgabenbasis für Drittanbieter und decken die meisten benutzerdefinierten Dinge ab, die ich jemals in nAnt gemacht habe, einschließlich VSS- und Subversion-Unterstützung.

Ehrlich gesagt kommt es darauf an, was besser zu Ihrer Umgebung passt.Wenn Sie viele Nicht-Microsoft-Tools verwenden, Nunit, ccnet, ncover.Sie werden wahrscheinlich bei Nant eine bessere Unterstützung finden.Wenn Sie alternativ MSTest oder TFSBuild verwenden, ist MSBuild wahrscheinlich eine bessere Umgebung.Ich würde beides lernen und das nutzen, was jeweils besser zu Ihrer Umgebung passt.

CC.NET ist einfach die Build-Server-Technologie, nicht die Build-Skript-Technologie.Wir verwenden CC.NET bei der Arbeit, um MSBuild-Build-Skripte sehr erfolgreich und ohne Probleme aufzurufen.

NAnt ist eine ältere und ausgereiftere Build-Skriptsprache, aber beide funktionieren ähnlich.Es gibt sehr wenige Dinge, die ich in NAnt tun kann, die ich nicht auch in MSBuild tun kann, es kommt also wirklich darauf an, mit welcher man sich besser auskennt.Was die Aktivität von NAnt angeht, schauen Sie nicht nach dem Datum der letzten Veröffentlichung, sondern nach dem Datum des letzten nächtlichen Builds.NAnt vergeht in der Regel lange zwischen den Veröffentlichungen, aber die nächtlichen Builds sind normalerweise ziemlich stabil.

Wie so viele Leute bereits angedeutet haben, lautet die Antwort hier: „Es kommt darauf an“.Es gibt einige Dinge wie sich wiederholende Vorgänge die in NAnt viel einfacher und sauberer sind.Sehen die MSDN-Foren für eine Diskussion darüber.

Ich finde, dass man insbesondere bei größeren Projekten auch einen hybriden Ansatz nutzen kann.Viele unserer Nant-Skripte werden bei der Entwicklung neuer Komponenten in msbuild konvertiert.Beide unterstützen die gleichen Hauptfunktionen und können sich gegenseitig aufrufen, wenn Sie eine Aufgabe finden, die in einer Version nativ unterstützt wird, in der anderen jedoch nicht.

Wenn Sie bei der Entwicklung neuer .NET-Projekte mit MSBuild beginnen, können Sie viel Zeit sparen, da die Lösungsdateien direkt ausgeführt werden können.Die Erweiterung der Hauptkompilierung auf andere Aufgaben (Quellcodeverwaltung, Bereitstellung usw.) funktioniert recht gut.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top