目前,我有以下腳本代碼。避免在NSIS中複製功能代碼
Section "Uninstall"
...
...
Call un.DeleteDirIfEmpty
SectionEnd
Function GetJRE
; Call must not be used with functions starting with "un." in the non-uninstall sections.
Call
FunctionEnd
Function un.DeleteDirIfEmpty
...
...
FunctionEnd
Function DeleteDirIfEmpty
...
...
FunctionEnd
需要注意的是,我需要提供2個版本DeleteDirIfEmpty的,所以,同樣的操作可以在不卸載部分和卸載部分進行。
他們的代碼是相同的,只是命名是不同的。 un.DeleteDirIfEmpty
和DeleteDirIfEmpty
怎麼可能只有1個函數,但是可以被任何部分調用?
「要刪除一個空目錄,只需使用RMDir(不帶/ r開關)」也是一個很好的提示。謝謝:) –
嗨安德斯,你可以編輯你的答案與如何調用共享功能的例子?當我從段中調用'$ {MyFunction}'時,出現錯誤「無效的函數命令從段調用」或類似的東西。同樣,我不確定代碼中'$ {CallArtificialFunction}'的作用是什麼。 – nawfal
我對此感興趣,因爲您的解決方案看起來比我從[鏈接]提供的解決方案更清晰(http://nsis.sourceforge.net/Sharing_functions_between_Installer_and_Uninstaller)。你推薦哪種方法?我更喜歡可讀性比冗餘度更低,更靈活。謝謝 – nawfal