Warum muss ein Ant Exec-task return-code nicht mit ERRORLEVEL-Wert?
Habe ich ein batch-Skript namens von Ant exec-task zum kompilieren einige CSharp code. Das batch Skript ist in der folgenden Weise gegliedert
msbuild.exe %ARGS%
echo %ERRORLEVEL%
Nun, wenn Sie die Aufgabe ausführen, Ant, erhalte ich das folgende Ergebnis:
[exec] Time Elapsed 00:00:09.48
[exec] 0
BUILD FAILED
C:\proj\build.xml:410: exec returned: 2
Wie ist es möglich, dass %ERRORLEVEL% ist 0, aber die Ant exec wird ein return-code von 2? Ist dies eine Standard-Fehler-code gesetzt, wenn der Befehl nicht zurück, wird ein code? Ant docs zeigen:
error code 2 means 'no such program',
Aber klar meine batch-Datei ausgeführt wird, richtig.
Update mit Ant Code
<target name="build.csharp" if="isWindowsPlatform">
<exec executable="cmd.exe" failOnError="true">
<arg value="/c"/>
<arg value="build.csharp.bat" />
</exec>
</target>
- Könnte Sie post einige oder alle Ihrer build.xml Datei? Ich hatte ein ähnliches problem, wo ich war, den Versuch zu starten, exe über Eigenschaften wie <property name="Notepad++.Dir" value="C:/Program Files (x86)/Notepad++/" />, aber ich habe dann einfach den vollständigen Pfad direkt in den exec-Befehl, und es öffnete die exe ist für mich kein problem!!!
- noch meine ant-code
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den ANT manual Staaten:
Erhalten Sie das Programm der return-code, den Sie verwenden müssen, um die resultproperty Attribut des exec-Aufgabe.
Gibt es einen Artikel in der ANT-wiki auf das Verhalten wie auch die Lösung:
http://wiki.apache.org/ant/AntOnWindows
Lief ich eine Reihe von Permutationen. Ich habe versucht:
exit %errorlevel%
exit /b %errorlevel%
@comspec /c exit %errorlevel%
Die einzige Technik, die erlauben würde, ant zu sehen, die richtigen Fehlercode war
exit %errorlevel%
. Während das Skript arbeitet jetzt richtig, es ist etwas ärgerlich, da es läuft direkt von der Kommando-shell die shell zu verlassen danach. (Aufruf des Skripts übercmd /c
funktioniert, aber ist zu umständlich.)Ich würde gerne hier von einer DOS-Experte erklären können, dass diese Ergebnisse und erweitern Sie. Danke.