Wird nAnt noch unterstützt und ist es für .net 3.5 / VS2008 geeignet?

Translate

Ich benutze MSBuild, um meine Sachen zu bauen. Ich möchte CruiseControl.net wie von Build Server verwenden.

Jetzt verweist CCNET häufig auf nAnt, aber es sieht so aus, als ob ccnet die meisten Dinge tun kann, die nant über die Projektkonfiguration und msbuild tun kann. Außerdem scheint nAnt mit einer Beta-Version, die mittlerweile fast ein Jahr alt ist, etwas nicht unterstützt zu werden.

Kurz gesagt: Ich bin eigentlich ziemlich zufrieden mit MSBuild (zumal es das "offizielle" Compiler-Frontend ist) und ein bisschen unangenehm mit nAnt, aber ich möchte nicht vorzeitig urteilen.

Was wären Gründe, nAnt über MSBuild zu verwenden? Besonders mit ccnet, das sich in Bezug auf Funktionen ein wenig mit nant zu überschneiden scheint (und das automatisierte Build-bezogene Zeug hinzufügt)

This question and all comments follow the "Attribution Required."

Alle Antworten

Translate

Wenn Sie mit MSBuild sehr zufrieden sind, würde ich mich an MSBuild halten. Dies kann einer der Fälle sein, in denen das Werkzeug, das Sie zuerst lernen, dasjenige ist, das Sie bevorzugen. Ich habe mit NAnt angefangen und kann mich nicht ganz an MSBuild gewöhnen. Ich bin mir sicher, dass sie beide noch einige Zeit da sein werden.

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

Interessant,Jeremy Millerstellte die genau entgegengesetzte Frageauf seinem Blogvergangenes Jahr.

Quelle
Translate

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

Ich kann den "noch unterstützten" Teil Ihrer Fragen nicht beantworten, aber ich würde sagen, wenn Sie bereits mit nAnt vertraut sind, ist dies wahrscheinlich möglich. Wenn Sie (oder jemand in Ihrer Gruppe) mit MSBuild vertraut sind, ist dies ebenfalls ein guter Weg.

Quelle
Translate

Wenn Sie bereits eine Reihe von benutzerdefinierten Aufgaben haben, die Sie mit nAnt verwenden, bleiben Sie dabei - mit MSBuild gewinnen Sie nicht viel. Das heißt, es scheint 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 haben eine Reihe von Community-Aufgaben.

Wir verwenden MSBuild hier aus dem gleichen Grund wie Sie - es ist jetzt das Standard-Build-System für VS, und wir hatten keine nAnt-spezifischen Dinge, über die wir uns Sorgen machen mussten.

DasMSBuildCommunityTaskssind zunächst eine gute Aufgabenbasis von Drittanbietern und decken die meisten benutzerdefinierten Aufgaben ab, die ich jemals in nAnt ausgeführt habe, einschließlich VSS- und Subversion-Unterstützung.

Quelle
Translate

Ehrlich gesagt hängt es davon ab, was besser zu Ihrer Umgebung passt. Wenn Sie viele Nicht-Microsoft-Tools verwenden, verwenden Sie nunit, ccnet, ncover. Sie werden wahrscheinlich eine bessere Unterstützung bei nant finden. Wenn Sie alternativ MSTest, TFSBuild, verwenden, wird MSBuild wahrscheinlich eine bessere Umgebung finden. Ich würde beides lernen und verwenden, was besser zu Ihrer Umgebung passt.

Quelle
Translate

CC.NET ist einfach die Build-Server-Technologie, nicht die Build-Skript-Technologie. Wir verwenden CC.NET bei der Arbeit, um MSBuild-Build-Skripte ohne Probleme sehr erfolgreich 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 auch in MSBuild nicht tun kann. Es kommt also wirklich darauf an, mit welchen Sie sich besser auskennen. Was die Aktivität von NAnt angeht, gehen Sie nicht vorbei, als die letzte Version veröffentlicht wurde. Gehen Sie stattdessen vorbei, wenn der letzte nächtliche Build war. NAnt neigt dazu, zwischen den Veröffentlichungen eine lange Zeit zu vergehen, aber die nächtlichen Builds sind normalerweise ziemlich stabil.

Quelle
Dean Lee
Translate

Wie das, was so viele Leute bereits angedeutet haben, lautet die Antwort hier "es kommt darauf an". Es gibt einige Dinge wieWiederholen von Operationendas ist in NAnt viel einfacher und sauberer. Sehendie MSDN-Forenfür eine Diskussion darüber.

Quelle
Translate

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

Bei einer neuen .NET-Entwicklung, die mit MSBuild beginnt, können Sie viel Zeit sparen, da die Lösungsdateien direkt ausgeführt werden können. Das Erweitern von der Hauptkompilierung zur Ausführung anderer Aufgaben (Quellcodeverwaltung, Bereitstellung usw.) funktioniert recht gut.

Quelle