CSharp コードをコンパイルするために、Ant exec タスクから呼び出されるバッチ スクリプトがあります。バッチスクリプトは次のように構成されています
msbuild.exe %ARGS%
echo %ERRORLEVEL%
Ant でタスクを実行すると、次の結果が得られます。
[exec] Time Elapsed 00:00:09.48
[exec] 0
BUILD FAILED
C:\proj\build.xml:410: exec returned: 2
%ERRORLEVEL% が 0 であるのに、Ant exec が戻りコード 2 を取得する可能性があるのはなぜですか? コマンドがコードを返さない場合、これはデフォルトのエラー コード セットですか? Ant ドキュメントのショー:
error code 2 means 'no such program',
しかし、バッチ ファイルが正しく実行されていることは明らかです。
Ant コードで更新する
<target name="build.csharp" if="isWindowsPlatform">
<exec executable="cmd.exe" failOnError="true">
<arg value="/c"/>
<arg value="build.csharp.bat" />
</exec>
</target>