2016-09-30 4 views
0

Mon script msbuild échoue même si la copie des fichiers est réussie. Si robocopy commande exitcode < 8, cela signifie que les fichiers ont été copiés. Alors, comment puis-je dire à msbuild script IgnoreExitCode si le code de sortie < 8? J'ai défini IgnoreExitCode sur true, mais que se passe-t-il s'il s'agit d'une erreur réelle?msbuild échoue avec le code de sortie robocopy réussi

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

Répondre

2

Essayez this workaround:

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

Utilisez ExitCode paramètre de sortie de Exec tâche et paramètre ContinueOnError au lieu de 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"/>