NSIS 在卸载程序中设置 'Space required'
NSIS set 'Space required' in uninstaller
我的卸载程序在组件页面上显示 'Space required' 为 0 Kb,因为我的部分中没有文件操作。
但是我在我的部分中使用 RMDir 删除了一些文件和目录,所以我想 'Space required' 显示所有选定组件的总和。
我尝试使用 SectionSetSize
,但 'Space required' 仍然显示 0。
Section "un.Delete directory" deldirSection
# ...
SectionEnd
Function .onInit
# ....
MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION \
"${APPNAME} is already installed. $\n$\nClick OK to remove the \
previous version or CANCEL to cancel this upgrade." \
IDOK uninst
Abort
# Run the uninstaller
uninst:
# calculate size of data dir
var /GLOBAL dirSize
${GetSize} $DIRPATH "/S=0K" [=11=]
IntFmt $dirSize "0x%08X" [=11=]
# add size of data dir to appropriate section
SectionSetSize ${deldirSection} $dirSize
ClearErrors
ExecWait $INSTDIR\uninstall.exe ;
Abort
done:
FunctionEnd
在un.onInit
中调用SectionSetSize
来修改卸载程序,而不是.onInit
。
我的卸载程序在组件页面上显示 'Space required' 为 0 Kb,因为我的部分中没有文件操作。 但是我在我的部分中使用 RMDir 删除了一些文件和目录,所以我想 'Space required' 显示所有选定组件的总和。
我尝试使用 SectionSetSize
,但 'Space required' 仍然显示 0。
Section "un.Delete directory" deldirSection
# ...
SectionEnd
Function .onInit
# ....
MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION \
"${APPNAME} is already installed. $\n$\nClick OK to remove the \
previous version or CANCEL to cancel this upgrade." \
IDOK uninst
Abort
# Run the uninstaller
uninst:
# calculate size of data dir
var /GLOBAL dirSize
${GetSize} $DIRPATH "/S=0K" [=11=]
IntFmt $dirSize "0x%08X" [=11=]
# add size of data dir to appropriate section
SectionSetSize ${deldirSection} $dirSize
ClearErrors
ExecWait $INSTDIR\uninstall.exe ;
Abort
done:
FunctionEnd
在un.onInit
中调用SectionSetSize
来修改卸载程序,而不是.onInit
。