In einer früheren Frage habe ich nach der Verwendung von xbuild zum Kompilieren einer Lösungsdatei gefragt, und mir wurde gesagt, dass dies nicht möglich ist. NAnt scheint ein wenig veraltet zu sein. Welche anderen Optionen gibt es? Ich brauche etwas, das Abhängigkeiten über mehrere Projekte hinweg unterstützt.
Antworten
Zu viele Anzeigen?Ich habe eine ähnliche Frage gestellt:
Ist es möglich, MSBuild-Dateien (Visual Studio sln) von der Befehlszeile in Mono zu bauen?
Ich bin mir nicht sicher, ob es nur ein richtiges Build-System gibt :-)
Ich weiß, dass das Mono-Team make verwendet, um MonoDevelop zu bauen, und dass MonoDevelop make im Verborgenen verwendet, um von MonoDevelop erstellte Projekte zu bauen ( http://tirania.org/blog//texts/md-build.html ).
Es gibt aber auch xBuild ( http://www.mono-project.com/Microsoft.Build ), eine MSBuild-kompatible Build-Engine, die vom mono-Team entwickelt wurde. Das könnte tatsächlich das beste Tool sein, da es Ihnen erlauben würde, Ihre Projekte zusätzlich zu Mono auch unter Microsofts .NET-Plattform zu bauen. Dieser Link ( http://go-mono.com/forums/#nabble-td15680662 ) spricht davon, dass sich MD auch in Richtung MSBuild bewegt.
XBuild war bis vor 5 Monaten ein Schrott.
Ich weiß nicht, ob sich das geändert hat, aber angesichts der Tatsache, dass MonoDevelop es immer noch nicht verwendet, würde ich sagen, es ist immer noch dasselbe.
Ich bezweifle stark, dass irgendein offizielles Mono-Build ein funktionierendes Xbuild enthält.
mdtool ist IMO eine sehr schlechte Lösung, insbesondere für Leute wie mich, die Mono-Anwendungen auf entfernten Servern entwickeln, die nicht über die GUI-Frameworks verfügen, die für die Installation von mdtool erforderlich sind, und dies auch nicht tun werden.
Was ich als funktionierende Lösung gefunden habe, ist, MonoDevelop automake-Skripte für Sie generieren zu lassen und sie weiterhin von Hand zu hacken.
Es war eigentlich gar nicht so schlimm, wie es sich anhört, und ich habe sogar eine Mono-App gemacht, um die Elemente aus den .csproj- mit den Makefile.am-Dateien zu synchronisieren.