0

当我尝试复制/覆盖文件夹时,我的 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}
4

1 回答 1

1

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

使用System::Call "Kernel32::GetLastError()...永远无效。System::Call 有一个特殊?e选项,但在您的情况下没有用。您无法从 NSIS 获取特定的错误信息,您所拥有的只是错误标志...

于 2013-03-19T02:48:22.883 回答