MSBuild出力をRakeからログファイルにパイプするにはどうすればよいですか
質問
新しい.NETプロジェクトを構築するために、Rakeで素晴らしいAlbacore Gemを使用しています。私の組織はまだNantを使用しており、ビルドスクリプトが実行されたときにログファイルを表示することを期待する多くの人々がいます。ログファイルにSTDOUTにダンプされたMSBUILDタスク出力を保存するにはどうすればよいですか?
解決
解決策を見つけました。 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はそれよりも少し複雑です。なぜなら、それはもっと多くのことをしなければならないからですが、あなたはアイデアを得ることができます。
所属していません StackOverflow