Post Build exited with code 1

后端 未结 18 1859
囚心锁ツ
囚心锁ツ 2020-12-04 16:11

I have a project with a post build event:

copy $(ProjectDir)DbVerse\\Lunaverse.DbVerse.*.exe  $(TargetDir)

It works fine every time on my m

18条回答
  •  -上瘾入骨i
    2020-12-04 16:37

    I have added this for future visitors since this is quite an active question.

    ROBOCOPY exits with "success codes" which are under 8. See: http://support.microsoft.com/kb/954404

    This means that:

    robocopy exit code 0 = no files copied
    robocopy exit code 1 = files copied
    When the result is 1, this becomes an error exit code in visual studio.
    

    So i solved this easily by adding this to the bottom of the batch file

    exit 0
    

    Suggest that handle ROBOCOPY errors in this fashion

    rem each robocopy statement and then underneath have the error check.
    if %ERRORLEVEL% GEQ 8 goto failed
    
    rem end of batch file
    GOTO success
    
    :failed
    rem do not pause as it will pause msbuild.
    exit 1
    
    :success
    exit 0    
    

    Confusion will set in when no files are copied = no error in VS. Then when there are changes, files do get copied, VS errors but everything the developer wanted was done.

    Additional Tip: Do not use a pause in the script as this would become an indefinite pause in the VS build. while developing the script, use something like timeout 10. You will notice this and comment it out rather than have a hanging build.

提交回复
热议问题