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

5

我的msbuild脚本即使文件复制成功也会失败。如果robocopy命令的退出代码<8,表示文件已经被复制。那么我应该如何告诉msbuild脚本如果退出代码<8就忽略ExitCode呢?我将IgnoreExitCode设置为true,但是如果遇到真正的错误呢?

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

8

使用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"/>

4
尝试使用这个解决方案
(robocopy  $(SourceDir) $(DestinationDir) /mir /mt /xd $(ExcludeDir)) ^& IF %ERRORLEVEL% LEQ 1 exit 0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接