2011-07-27 9 views
3

私はこれを行う方法がわかりません。私は複数のmsbuild呼び出しを行うために使用しているバッチスクリプトファイルを持っています。私は、msbuildの出力が私のコマンドウィンドウを汚染しないようにしたいのではなく、代わりにログファイルにダンプします。私はこれを行う方法がわからないんだけど、ここではこれまでのところ私のスクリプトです:バッチスクリプト - 成功した場合、コンソールウィンドウではなく特定のファイルにmsbuild出力をダンプしますか?

@ECHO Building shared libraries ... 

msbuild "SharedLibraries.sln" 
:: Not sure how to catch an unsuccessful build here for my GOTO ERROR? 
:: Copy dll files to specific location 

@ECHO Building primary application... 

msbuild "Myapp.sln" 
:: Not sure how to catch an unsuccessful build here for my GOTO ERROR? 

:ERROR 

だから、私はどのように行う:

  1. ログファイルにMSBuildの出力をダンプ?
  2. ビルドが失敗し、エラーラベルに移動しますか? /noconsoleloggerスイッチが標準出力にもはや書き込みにMSBuildのを引き起こしながら/fileLoggerコマンドラインスイッチを追加

答えて

10

は、MSBuildのが現在のディレクトリにmsbuild.logをファイルにビルド出力を書き込むようになります。ファイル名は次の例のように/flpスイッチを使用して設定することができます。

msbuild "SharedLibraries.sln" /nologo /noconsolelogger /fileLogger /flp:logfile=buildlog.txt 

詳細はMSBuild Command Line Referenceを参照してください。

2番目の質問については、 MSBuildのは、ビルドが失敗した場合はゼロ以外の終了コードを返し、いつものように処理することができる。

msbuild "SharedLibraries.sln" /nologo /noconsolelogger /fileLogger /flp:logfile=SharedLibraries.log 
if not errorlevel 0 goto ERROR 

msbuild "Myapp.sln" /nologo /noconsolelogger /fileLogger /flp:logfile=Myapp.txt 
if not errorlevel 0 goto ERROR 

:ERROR 
+1

そしてもちろん、古き良き出力のリダイレクトではなく標準出力のファイルへの出力を書き込むためにも動作します: 'MSBuildの" SharedLibraries.sln "> SharedLibraries.log' –

関連する問題