我正在使用带有Rake的神话般的Albacore宝石来构建一个新的.NET项目。我的组织仍在使用Nant,并且有很多人希望在构建脚本执行时看到日志文件。如何保存将其倾倒到日志文件的MSBUILD任务输出?

有帮助吗?

解决方案

我想出了一个解决方案。我们真的不需要CI服务器(Hudson)的构建日志文件,但是要检查构建何时在本地运行,尤其是当我们进行登机手续舞蹈和构建时,仍然很高兴失败。

幸运的是,Albacore Dudes足够聪明,可以创建一个“。参数”选项,该选项可与任何命令行工具任务一起使用,以添加该任务未明确处理的参数。因此,例如,您可以在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比这更复杂,因为它必须做更多的事情,但是您明白了。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top