Wie kann ich mein Rohr msbuild Ausgabe in eine Protokolldatei von Rake
Frage
Ich bin mit dem fabelhaften Weiß Thun Juwel mit Harke ein neues .NET-Projekt zu erstellen. Meine Organisation ist immer noch mit NAnt, und es gibt viele Leute, die erwarten, dass eine Protokolldatei, wenn die Build-Skript ausführt, um zu sehen. Wie speichere ich die msbuild Aufgabe Ausgabe, die STDOUT in eine Log-Datei ausgegeben wird?
Lösung
dachte ich, eine Lösung aus. Wir brauchen nicht wirklich eine Build-Protokolldatei für unseren CI-Server (hudson), aber es wäre trotzdem schön sein physischen Dateien zu haben, um zu überprüfen, wenn der Build lokal ausgeführt wird, vor allem, wenn wir die Check-in-Tanz tun und den Build schlägt fehl.
Glücklicherweise sind die Weißen Thun Gecken waren klug genug, um eine „.parameters“ Option zu schaffen, die mit einem der Befehlszeilentool Aufgaben verwendet werden können Parameter hinzufügen, die nicht ausdrücklich von dieser Aufgabe behandelt werden. So zum Beispiel können Sie einen Parameter zur msbuild Aufgabe fügen Sie ein Logfile für MSBuild angeben. Und es geht ein wenig etwas wie folgt aus:
BUILD_REPORTS = 'BuildReports'
MSBUILD_EXE = "C:/Windows/Microsoft.NET/Framework/v4.0.30319/msbuild.exe"
directory BUILD_REPORTS
CLEAN.include BUILD_REPORTS
task :default => [:build]
desc "Build the solution"
msbuild :build => BUILD_REPORTS do |msb|
msb.properties :configuration => :Debug
msb.path_to_command = MSBUILD_EXE
msb.targets :Clean, :Build
msb.solution = "./mysolution.sln"
msb.parameters "/l:FileLogger,Microsoft.Build;logfile=" + log_file("build")
end
def log_file(log_file_name)
BUILD_REPORTS + log_file_name + ".log"
end
Unsere Rakefile ist ein wenig komplexer als das, weil es mehr Dinge zu tun, aber Sie bekommen die Idee.