如何将我的msbuild输出从rake传递到日志文件

时间:2010-06-24 22:46:14

标签: ruby rake albacore

我正在使用精美的albacore gem和rake来构建一个新的.NET项目。我的组织仍在使用NAnt,并且有很多人希望在构建脚本执行时看到日志文件。如何将转储到STDOUT的msbuild任务输出保存到日志文件中?

1 个答案:

答案 0 :(得分:3)

我找到了解决方案。我们真的不需要我们的CI服务器(hudson)的构建日志文件,但是当构建在本地运行时要检查物理文件仍然很好,特别是当我们正在进行签入舞蹈和构建时失败。

幸运的是,albacore家伙足够聪明,可以创建一个“.parameters”选项,可以与任何命令行工具任务一起使用,以添加未由该任务明确处理的参数。因此,例如,您可以向msbuild任务添加参数以指定MSBuild的日志文件。它有点像这样:

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

我们的rakefile比这复杂得多,因为它必须做更多的事情,但你明白了。