#msbuild #robocopy
#msbuild #robocopy
Вопрос:
Мой сценарий msbuild завершается с ошибкой, даже если копирование файлов выполнено успешно. Если код выхода команды robocopy < 8, это означает, что файлы скопированы. Итак, как я могу сказать сценарию msbuild IgnoreExitCode, если код выхода <8? Я установил IgnoreExitCode в значение true, но что, если это настоящая ошибка?
<Exec Command="robocopy $(SourceDir) $(DestinationDir) /mir /mt /xd $(ExcludeDir)" IgnoreExitCode="true" />
Ответ №1:
Используйте выходной параметр ExitCode задачи Exec и параметр ContinueOnError вместо IgnoreExitCode:
<Exec ContinueOnError="True" Command="robocopy $(SourceDir) $(DestinationDir) /mir /mt /xd $(ExcludeDir)">
<Output TaskParameter="ExitCode" PropertyName="ErrorCode"/>
</Exec>
<Error Condition="$(ErrorCode) amp;> 8" Message="Robocopy failed"/>
Ответ №2:
Попробуйте это обходное решение:
(robocopy $(SourceDir) $(DestinationDir) /mir /mt /xd $(ExcludeDir)) ^amp; IF %ERRORLEVEL% LEQ 1 exit 0