2009-03-03 17 views
1

バッチファイル内に複数の.slnファイルを作成しようとしています。これまでのところすべて素晴らしいです。私は、バッチファイル内のチェックを追加しようとしているので、エラーの数が0より大きい場合、バッチファイルは実行を停止し、次の.slnファイルは作成されません。どうやってやるの?基本的には何かのように:Visual Studio、MS Build

のMSBuild test.sln (もしビルドエラー> 0 停止を確認してください) のMSBuild test2.sln

答えて

4

MSBUILDはERRORLEVELを設定し、程度の線に沿って何かます:

msbuild test.sln 
IF NOT ERRORLEVEL 0 exit 1 

編集:どうやら、それは次のようになります。

msbuild test.sln 
IF ERRORLEVEL 1 exit 1 
+0

"errorlevel 0でない"は常にfalseです。 "errorlevel 0"は常にtrueです。 –

+2

これは私のために働いていないようです。 MSBuildは、エラーがあるかどうかにかかわらず常にエラーレベル0を返します。 – Phil

1
msbuild.exe test.sln 
if errorlevel 1 goto :errors 

msbuild.exe test2.sln 
if errorlevel 1 goto :errors 

:: ... 

:: Everything was fine. 
echo Build completed without errors. 
goto :eof 

:error 
echo Build failed. 
+0

常に1が返ってくるかどうかわからないのですか? IF [NOT] ERRORLEVEL番号コマンドの最後のプログラムの実行 に等しいか、終了コードを返した場合 ERRORLEVEL番号が真の条件を指定:ERRORLEVEL 1 はERRORLEVELが1か_higher_ある場合はtrueになりそうでない場合は0が –

+1

より安全かもしれません数が より大きい。 –

1

ここでは、カスタムmsbuildファイルを使用して、ソリューションのセットでmsbuildタスクを使用するほうがはるかに簡単です。詳細については、hereを参照してください。