当我尝试复制/覆盖文件夹时,我的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}
答案 0 :(得分:1)
如果您一直想覆盖,为什么要使用Try
而不是SetOverwrite On
?
使用System::Call "Kernel32::GetLastError()...
从不有效。 System :: Call有一个特殊的?e
选项,但在你的情况下没用。你无法从NSIS获得具体的错误信息,你所拥有的仅仅是错误标志......