2016-09-30 102 views
0

即使複製文件成功,我的msbuild腳本仍然失敗。如果robocopy命令exitcode < 8,則表示複製了文件。那麼如果退出代碼爲< 8,我怎麼能說msbuild腳本IgnoreExitCode? 我將IgnoreExitCode設置爲true,但如果它是真正的錯誤呢?msbuild失敗,成功的robocopy退出代碼

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

回答

2

嘗試this workaround

(robocopy $(SourceDir) $(DestinationDir) /mir /mt /xd $(ExcludeDir)) ^& IF %ERRORLEVEL% LEQ 1 exit 0 
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) &gt; 8" Message="Robocopy failed"/>