MSBuild出力をRakeからログファイルにパイプするにはどうすればよいですか

StackOverflow https://stackoverflow.com/questions/3114454

  •  29-09-2019
  •  | 
  •  

質問

新しい.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はそれよりも少し複雑です。なぜなら、それはもっと多くのことをしなければならないからですが、あなたはアイデアを得ることができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top