msbuild завершается неудачно с успешным кодом завершения robocopy

Мой скрипт msbuild не работает, даже если копирование файлов прошло успешно. Если код выхода команды robocopy< 8, это означает, что файлы скопированы. Итак, как я могу сказать скрипту msbuild IgnoreExitCode, если код выхода < 8? Я установил для IgnoreExitCode значение true, но что, если это настоящая ошибка?

<Exec Command="robocopy  $(SourceDir) $(DestinationDir) /mir /mt /xd $(ExcludeDir)" IgnoreExitCode="true" />

2 ответа

Используйте выходной параметр ExitCode задачи Exec и параметр ContinueOnError вместо IgnoreExitCode:

<Exec ContinueOnError="True" Command="robocopy  $(SourceDir) $(DestinationDir) /mir /mt /xd $(ExcludeDir)">
   <Output TaskParameter="ExitCode" PropertyName="ErrorCode"/>
</Exec>
<Error Condition="$(ErrorCode) &gt; 8" Message="Robocopy failed"/>

Попробуйте этот обходной путь:

(robocopy  $(SourceDir) $(DestinationDir) /mir /mt /xd $(ExcludeDir)) ^& IF %ERRORLEVEL% LEQ 1 exit 0
Другие вопросы по тегам