Возврат определенного кода выхода из NANT
Если сборка завершится успешно, NANT завершит работу с кодом 0, если при сборке произойдет сбой NANT с кодом 1, и вы можете использовать <fail>
для принудительной установки.NANT не дает другого способа управления кодом выхода, однако вы можете взломать его:
<script language="C#">
<code>
<![CDATA[
public static void ScriptMain(Project project)
{
System.Environment.Exit(3);
}
]]>
</code>
</script>
Это немедленно прекратит работу nant, так что, возможно, вы захотите создать цель для запуска в самом конце, поместив ееinto nant.onsuccess .
Почему код выхода NANT равен 0 при <exec>
Failed?
<exec>
завершается неудачно, когда команда завершается с чем-либо, кроме 0. Обычно этоЭто приводит к сбою всей сборки и к завершению NANT с кодом 1, с двумя исключениями (см. 2 и 3).Это дает нам три возможных объяснения:
- Ваша команда не выполняется, но в любом случае завершается с 0 (это довольно распространенное поведение).Установите атрибут
resultproperty
и проверьте свойство. Атрибут failonerror="False"
был установлен на <exec>
или на более высокий уровень (<nant>
или <call>
).Проверьте выходные данные NANT, чтобы увидеть, в каком порядке вызываются цели, или выполните поиск failonerror=
. - .
<exec>
выполняется как часть цели, запущенной через nant.onsuccess соответственно. nant.onfailure свойство hook.Проверьте, если и где, ищите nant.on
.
Сказать что-нибудь еще, например, сценарий NANT или, возможно, файл журнала.