msbuild失败,成功的robocopy退出代码

时间:2016-09-30 15:45:24

标签: msbuild robocopy

即使复制文件成功,我的msbuild脚本也会失败。如果robocopy命令exitcode< 8,表示复制文件。那么如果退出代码<我怎么能对msbuild脚本IgnoreExitCode说8? 我将IgnoreExitCode设置为true,但如果它是真正的错误怎么办?

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

2 个答案:

答案 0 :(得分:4)

使用 Exec 任务的 ExitCode 输出参数和 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"/>

答案 1 :(得分:3)

尝试this workaround

(robocopy  $(SourceDir) $(DestinationDir) /mir /mt /xd $(ExcludeDir)) ^& IF %ERRORLEVEL% LEQ 1 exit 0