写入文件夹会导致错误代码80

时间:2013-03-19 00:00:16

标签: installer nsis

当我尝试复制/覆盖文件夹时,我的NSIS安装程序提供的错误代码为80。我认为这可能与我试图复制到用户HD的文件夹已经存在的事实有关。但就我而言,我总是想要覆盖它。

错误代码80是什么意思?

继承我的代码:

# Write plugins to EXDS_Customisation\EXDS_USER\
ClearErrors
SetOverwrite try
SetOutPath "$INSTDIR\EXDS_User\"
FILE /r "${localInstallDir}\EXDS_Customisation\EXDS_User\${MAINPLUGINSDIR}"

${If} ${Errors}
    System::Call "Kernel32::GetLastError() i() .r1"
    # Prints: "Error code: 80"
    MessageBox MB_ICONINFORMATION|MB_OK "Error code: $1 "
        Quit
${EndIf}

1 个答案:

答案 0 :(得分:1)

如果您一直想覆盖,为什么要使用Try而不是SetOverwrite On

使用System::Call "Kernel32::GetLastError()... 从不有效。 System :: Call有一个特殊的?e选项,但在你的情况下没用。你无法从NSIS获得具体的错误信息,你所拥有的仅仅是错误标志......