Einführung in Microsofts Build-Management-Technik MSBuild

Seite 3: Bibliothen, Editoren & Helfer

Inhaltsverzeichnis

Die von MSBuild mitgelieferten Tasks sind in der MSBuild-Referenz beschrieben. Daneben stellt Microsoft für jedes Serverprodukt und für jede größere Technik besondere Tasks zur Verfügung. Für das Build-Management sind diese jedoch nicht ausreichend. Daher haben sich seit einigen Jahren weitere Bibliotheken etabliert.

Im Rahmen des MSBuild Community Tasks Project findet man kostenlose Tasks. Bemerkenswert sind die für Visual SourceSafe und Subversion. Für das Build-Management ist der AssemblyInfo-Task interessant. Mit ihm kann man Informationsdateien zu Dateien erstellen. Das ist bei C# in der Regel die AssemblyInfo.cs, in der zum Beispiel die Version (1.0.0.0) steht. ChmBuilder und ChmCompiler erstellen Hilfedateien.

Unter den MSBuild Extension Pack stehen ebenfalls kostenlose Tasks zur Verfügung. Sie ergänzen die Community-Tasks und lösen mehr Microsoft-orientierte Aufgaben wie die Unterstützung von SQL Server, BizTalk und System-Schnittstellen. Auch finden sich mehr Funktionen für den Team Foundation Server (TFS). Dem Extension Pack stehen zur Entwicklung nicht so viele Ressourcen zur Verfügung wie den Community Tasks, für die die Firma Tigris verantwortlich zeichnet.

Bei dem Codeplex-Projekt MSBuild contrib sind folgende Tasks hervorzuheben: ein "Grep"-Task nach dem Vorbild des berühmten Linux-Tools, ein FxCop-Task für den Aufruf der statischen Codeanalyse und ein CheckSum-Task für die Verifizierung, ob Datei-Bäume richtig angelegt wurden.

Die SDC Tasks sind eine Task-Bibliothek, die neben BizTalk 2004 und 2006 noch Tasks für die Erstellung von Versionsdateien sowie für die Paketierung via MSI und WIX bedient. Eine Online-Dokumentation gibt es nicht, die Offline-Version ist gut und ausführlich.

Auf der Codeplex-Seite des "Sedodream MSBuild"-Projekts findet man unter anderem Tasks für den Umgang mit Dateien, mehrere Logger, und LINQ Tasks.

Tasks zur Pre-Checkin-Validierung für TFS gibt es mit dem TFS Check-in Validation Tool. SharePoint lässt sich mit MSBuild Tasks for WSS 3.0 testen.

Die Erweiterbarkeit von MSBuild stellt den Entwickler oft vor die Frage, was effektiver ist: eine schnelle Lösung mit der Windows-Kommandozeile, die der Entwickler direkt in das Build-Skript des Build-Servers einbaut, die Zuhilfenahme von Task-Bibliotheken, das Implementieren eines eigenen Tasks oder gar das Schreiben eines eigenständigen Tools, das unabhängig ist von MSBuild und sich per Kommandozeile aufrufen lässt.

Nach dem Festlegen der Anforderungen sollte der Entwickler erst einen Blick in die Referenz von MSBuild und der Windows-Kommandozeile werfen. Danach untersucht er die Task-Bibliotheken von MSBuild, erst die weit verbreiteten, dann die weniger bekannten. Wenn sie die Anforderungen nicht erfüllen, lässt sich an eine Eigenentwicklung denken. Die Entscheidung, ob ein MSBuild-Task oder eine eigenständige ausführbare Datei zu schreiben ist, hängt davon ab, ob man das Tool auch außerhalb von MSBuild braucht und ob MSBuild in der Projektumgebung als strategisch eingestuft wird.

Die kostenlose Sidekick-Version kann einen Überblick über die Struktur eines MSBuild geben (Abb. 7).

Eines der wenigen kommerziellen Tools im MSBuild-Umfeld ist MSBuild Sidekick. Die Version 1.1.2 ist kostenlos erhältlich. In der aktuellen Version 2.3 kostet Sidekick als Einzellizenz 55 US-Dollar. Seine Funktion besteht darin, eine MSBuild-Datei als visuelle Baumstruktur wiederzugeben.

Die Kaufversion ist professionell ausgestaltet, zum Beispiel lassen sich .msbuild-Dateien auf die Anwendung ziehen, um sie zu öffnen. Eine XML-Ansicht, die die XML-Ausschnitte je nach Hierarchieebene anzeigt, ist ebenfalls vorhanden. Das kommerzielle Sidekick zeigt auch die Zusammenhänge der Tags als Diagramm. Selbst eine Ausführung Schritt für Schritt ist via F11 oder per Breakpoint realisierbar.

Die bemerkenswerteste Komponente der professionellen Sidekick-Variante ist ein Debugger, der per GUI einstellbar ist (Abb. 8).

Der kostenlose MSBuild Explorer ist nicht mit dem "Team Foundation Build Explorer" zu verwechseln. Er ist der Teil des Team Explorer in der Visual Studio Team Suite und anderen Produkten mit Team Explorer. Der MsBuild Explorer installiert standardmäßig in das SystemTray. Dies lässt sich unter File | Options | Advanced | Enable System Tray Icon ausschalten. Dazu muss auf den fehlerhaft platzierten Save-Button oben links auf der Optionsseite geklickt werden. Bei jeder Änderung einer Option wird die aktuell geöffnete MSBuild-Datei ohne Grund neu geladen. Setzt man eine Verknüpfung auf die ausführbare Datei und klickt darauf, erscheint zunächst das SystemTray-Icon und verschwindet dann wieder. Kurz danach startet das Programm. Man kann MSBuild-Dateien per Drag & Drop öffnen.

MSBuild Explorer installiert sich standardmäßig in das Systemtray (Abb. 9).

Im Test funktionierten der Menüeintrag "Run" und F5 nicht, getestet auf einem Windows XP SP3, wie sie viele Unternehmen einsetzen. MSBuild-Dateien ließen sich also nicht ausführen, es wurde kein Eintrag in die System-Events oder im Applikations-Logfile geschrieben. Gegenüber der kostenlosen Sidekick-Version hat der MSBuild Explorer mehr Funktionen, er ist aber nicht so ausgereift.

Die frei erhältliche MSBuild Shell Extension bietet im Kontext-Menü des Datei-Explorers die Option an, eine Projekt- oder Projektmappendatei auszuführen. Mit MSBuildShellExtensionConfigurator.exe lassen sich Targets in das Kontext-Menü aufnehmen. Das ist praktisch bei Umgebungen mit starkem MSBuild-Einsatz, etwa wenn man wichtige Tests über MSBuild steuert.