我正在使用带有 rake 的神话般的 albacore gem 来构建一个新的 .NET 项目。我的组织仍在使用 NAnt,并且有很多人希望在构建脚本执行时看到一个日志文件。如何将转储到 STDOUT 的 msbuild 任务输出保存到日志文件?
问问题
1714 次
1 回答
3
我想出了一个解决办法。我们真的不需要 CI 服务器 (hudson) 的构建日志文件,但如果有物理文件来检查构建何时在本地运行,尤其是在我们进行签入和构建时,这仍然是件好事失败。
幸运的是,长鳍金枪鱼们足够聪明,可以创建一个“.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 比这复杂一点,因为它必须做更多的事情,但你明白了。
于 2010-06-25T20:11:50.407 回答