2

新しい .NET プロジェクトを構築するために、すてきな albacore gem と rake を使用しています。私の組織はまだ NAnt を使用しており、ビルド スクリプトの実行時にログ ファイルが表示されることを期待する人がたくさんいます。STDOUT にダンプされる msbuild タスクの出力をログ ファイルに保存するにはどうすればよいですか?

4

1 に答える 1

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は、より多くのことをしなければならないので、それよりも少し複雑ですが、あなたはその考えを理解します。

于 2010-06-25T20:11:50.407 に答える