20 Stimmen

Lohnt es sich, die Verwendung von MSBuild zu erlernen?

Ich habe mich einfach gefragt, ob es sich lohnt, die MSBuild-Syntax zu lernen, um den Build-Prozess für ein .net-Projekt anzupassen, oder ob es sich angesichts der Leichtigkeit, mit der man ein Projekt mit Visual Studio erstellen kann, wirklich nicht lohnt.

Ich denke an nächtliche Builds usw., aber könnte ich dann nicht ein geplantes Ereignis verwenden, das die in VS integrierte Befehlszeilen-Build-Option nutzt? Gibt es da draußen bessere Tools?

15voto

Andrew Burns Punkte 13015

@kronoz
Ich würde sagen JA.
Das Schöne an MSBuild ist, dass, wenn Sie Ihre csproj-Dateien ändern, um benutzerdefinierte Build-Schritte enthalten, dann werden diese Schritte von innerhalb VS oder von MSBuild geschehen. Auch wenn Sie jemals einen Build-Server haben, müssen Sie nicht vollständig installieren VS, nur das SDK, um Ihre Projekte zu bauen.

13voto

Jivko Petiov Punkte 586

MSBuild ist es absolut wert, dass man sich die Zeit nimmt, es zu lernen. Nach der anfänglichen Lernkurve (die tatsächlich sehr steil sein kann) wird es ziemlich einfach, die häufigsten Schritte der Build-Automatisierung durchzuführen.

  • Erstellung von Baugruppen im RELEASE-Modus
  • Unterzeichnung von Baugruppen mit eindeutigem Namen
  • Durchführung von Einheitstests
  • Änderung von Xml-Dateien / Web.config-s im laufenden Betrieb
  • Änderung der Versionsnummer der Baugruppen
  • Validierung von FxCop / StyleCop usw...
  • automatische Bereitstellung - Erstellung von SQL-Datenbanken, IIS-Websites, Windows-Diensten usw...

8voto

Scott Lawrence Punkte 6695

MSBuild ist für jeden, der .NET-Software schreibt, auf jeden Fall erlernenswert. Der Grund, warum ein Build-Server für .NET-Anwendungen nicht mehr die Installation von Visual Studio erfordert (wie Andrew Burns erwähnte), ist, dass MSBuild jetzt Teil des .NET Frameworks ist.

Die Kenntnis von MSBuild gibt Ihnen erhebliche Flexibilität bei der Wahl der Technologien, die Sie für die Implementierung der kontinuierlichen Integration verwenden. Da ich mir die Zeit genommen habe, MSBuild zu lernen, konnte ich das CI-System, das eines unserer Teams verwendete, ohne große Schwierigkeiten von CruiseControl.NET auf TeamCity umstellen. Diese CI-Server oder etwas wie FinalBuilder (mit dem ich nicht vertraut bin) sind bessere Optionen für die Durchführung nächtlicher Builds als eine geplante Aufgabe. Wenn Sie lernen, wie man benutzerdefinierte MSBuild-Aufgaben implementiert, erhalten Sie noch mehr Flexibilität bei der Implementierung benutzerdefinierter Builds. Jivko Petiov hat eine Reihe von Aufgaben aufgelistet, die durch MSBuild vereinfacht werden. Im Falle der Datenbankbereitstellung und -konfiguration habe ich Skripte geschrieben, die dies in MSBuild erledigen, und das macht den Entwicklungs- und Testprozess viel einfacher.

Wenn Sie in Zukunft Visual Studio Team System einsetzen möchten, lassen sich die mit MSBuild erstellten Anwendungen viel einfacher in diese Umgebung übertragen als die mit anderen Mitteln erstellten.

Es gibt zahlreiche Ressourcen, die Ihnen den Einstieg in MSBuild erleichtern. Ich würde beginnen mit Einblicke in die Microsoft Build Engine . Einer der Co-Autoren hat auch eine Menge Material im Internet veröffentlicht, darunter diese Seite und eine Projekt auf CodePlex .

7voto

tsimon Punkte 8182

Es klingt so, als ob Sie ein einzelner Entwickler sind, der an seiner eigenen Website arbeitet. Wenn dies der Fall ist, ist es nicht notwendig, aber es ist trotzdem eine gute Idee für Sie, als Teil Ihrer Berufserfahrung zu lernen.

Die automatisierte Erstellung von Projekten wird immer notwendiger, je mehr Entwickler an einem Projekt arbeiten. Es ist sehr einfach für zwei Entwickler, inkompatiblen Code zu schreiben, der bei einer Kombination nicht mehr funktioniert (stellen Sie sich vor, ich rufe eine Funktion foo(int x) auf, und Sie ändern die Signatur in foo(int x, int y): Wenn wir unsere Codebasen kombinieren, wird der Code nicht mehr funktionieren.

Diese Arten von Fehlern werden umso komplexer und problematischer, je mehr Zeit zwischen den einzelnen Integrations-Builds vergeht. Durch die Einrichtung nächtlicher Builds oder sogar Builds, die bei jedem Check-in erfolgen, werden diese Probleme erheblich reduziert. Diese Praxis ist bei Projekten mit mehreren Entwicklern fast schon Industriestandard.

Um Ihre Frage zu beantworten: Dies ist eine Fähigkeit, die projekt- und unternehmensübergreifend ist. Sie sollten sie erlernen, um Ihr Wissen und Ihre Fähigkeiten als Entwickler zu erweitern und um eine wichtige Zeile in Ihrem Lebenslauf hinzuzufügen.

5voto

Michael Pryor Punkte 24198

Nun, MSBuild ist eingebaut, also wenn Sie etwas Einfaches machen, dann ja, es wird empfohlen.

Aber für so etwas wie nächtliche Builds würde ich vorschlagen FinalBuilder .

Siehe dies Frage zu Build/Configuration Management Tools.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X