2009-04-16 8 views
4

Ich bin neu, um Automatisierung und kontinuierliche Integration zu bauen, habe aber umfangreiche Forschung zu diesem Thema gemacht.Modernes Build-Tool geeignet für Visual Studio MSBuild

Zuerst die Frage: angenommen, ich habe eine nicht verwaltete Visual C++ .sln-Datei, und dass ich es mit MsBuild erstellen kann, welches moderne Build-Tool sollte ich wählen, die mir leicht vor/nach Build-Schritte ausführen?

Ich will nicht "alte" Build-Tool wie Ant, Nant, machen, mit seinem XML-Chaos. Ich möchte etwas, was es mir erlaubt, frei auszudrücken, was ich auf menschenfreundliche Weise tun möchte. Basierend auf meinen Recherchen scheinen Waf, Scons und Rake die Rechnung zu erfüllen.

Hintergrund meiner Umgebung: Meine Quellcodeverwaltung ist Subversion. Mein Komponententestframework ist GoogleTest, der JUnit-kompatible XML-Dateien erzeugt. Ich habe JIRA für mein Tracking-Tool ausgewählt. Ich habe TeamCity für meinen CI-Server ausgewählt. Ich verwende Visual Build, um meine .sln-Datei zu erstellen.

Ich möchte ein einfaches Build-Skript (aufrufbar aus meinem CI-Server) in der Lage sein zu schreiben, das würde:

1) Erstellen Sie ein CI-Server-Arbeitsbereich-Verzeichnis.
2) Code von SVN auschecken. (Meine Repos sind so eingerichtet, dass sie svn: externals verwenden, um Abhängigkeiten von meinem anderen Repository zu ziehen.)
3) Führen Sie Visual Build-Builddatei aus, um alle Projekte/Plattformen in .sln zu erstellen.
4) Führen statische Code-Analyse/dynamischer Code-Analyse-Tools
5) Sammeln Ergebnisse von MsBuild (ob der Kompilierung versagen, statisch/dynamisch Warnungen Codeanalyse oder Einheit Test nicht bestehen, usw.) für CI-Server
6) CI-Server-Protokolle dies und verbindet es auch mit JIRA.

+0

Das Arbeiten mit MSBuild- und C++ - Projekten ist in der Tat ein Durcheinander, weil .vcproj kein natives MSBuild-Format wie .csproj ist, sondern von MSBuild auf eine spezielle Weise gehandhabt wird. – mmmmmmmm

+0

Ich bin mir nicht sicher, was du meinst. Ich habe eine .sln-Datei, die mehrere Projekte enthält. um es zu kompilieren, muss ich nur msbuild eingeben .sln..und es funktioniert wie ein Charme. – sivabudh

+0

Also, was ist deine eigentliche Frage? Du scheinst deine Antwort bereits definiert zu haben. –

Antwort

4

Neben dem Kompilieren von Code kann Visual Build verwendet werden, um Quellcode zu extrahieren und Ihre Analysetools auszuführen (und über eine nette GUI, mit der Sie jedes "xml mess" ausblenden können.) Ihr CI-Server sollte über eine Methode zum Integrieren externer Protokolle verfügen in einen Build.

4

Hudson das Java-Build-Tool hat ein MSBuild- und Nant-Plugin. Plugins sind auch verfügbar, einschließlich fxcop und einige der lustigen Unit Testing-Bibliotheken, die Sie C# Jungs verwenden.

Ich würde sagen, es ist das beste freie auf dem Markt verfügbar. Schauen Sie sich diese Werkzeuge für die CI-Build-Server: Pulse Teamcity AnthillPro (dies Es kann auch Befehlszeile apps etc

http://wiki.hudson-ci.org/display/HUDSON/Installation+and+Execution Karl

3

nur für andere, die diese Seite finden (wie mich) aufrufen ist sehr prof, aber erfordert auch eine Menge zu lernen) CruiseControl

Pulse und TeamCity kann sln mit Msbuild bauen. Hat auch viele nette Funktionen und ich fand die besten (ab 10+) Tools als CI-Server. Einfache Verwaltung, großartige Unterstützung und gute Funktionen.