2013-03-19 24 views
0

當我嘗試複製/覆蓋文件夾時,我的NSIS安裝程序提供的錯誤代碼爲80。我認爲這可能與我試圖複製到用戶HD的文件夾已存在的事實有關。但在我的情況下,我會一直想覆蓋它。正在寫文件夾導致錯誤代碼80

錯誤代碼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

如果你總是想覆蓋,爲什麼您使用Try,而不是SetOverwrite On

使用System::Call "Kernel32::GetLastError()...從來沒有有效。系統::呼叫有一個特殊的?e選項,但它對你的情況沒有用。你不能從NSIS得到具體的錯誤信息,你只有錯誤標誌...