2010-05-12 139 views
2

我正在使用NSIS來創建我的安裝程序/卸載程序,並且卸載程序似乎有一個奇怪的行爲。NSIS卸載程序工作目錄

我不把安裝程序放在$ INSTDIR中,它位於$ INSTDIR/subdir/uninstall.exe(它是主機應用程序的插件安裝程序)。

當我運行安裝程序時,它認爲應用程序安裝根目錄是$ INSTDIR/subdir而不是$ INSTDIR。然後,它不能在subdir/*中找到所有文件,因爲它已經在subdir中。

如果我移動可執行文件,它似乎只接受當前目錄作爲應用程序安裝根目錄。我可以將它移動到$ INSTDIR,一切都很好。

謝謝。

回答

4

$ INSTDIR卸載程序僅僅是目錄中的卸載程序是(不一樣的必然當前目錄)

如果你可以把卸載程序中的安裝根,那是最好的選擇,否則你必須像strcpy $instdir "$instdir\.."那樣做一些難看的事情,或者在每個Delete/RMDir調用中使用一個定義。

或者,如果您在安裝過程中將安裝目錄保存在註冊表的某處,則可以在卸載程序中將其讀回。