NSIS устанавливает "Требуется место" в деинсталляторе
Мой деинсталлятор показывает "0 Кбайт" для "Требуется место" на странице компонентов, потому что у меня нет операций с файлами внутри моих разделов. Но я удаляю некоторые файлы и каталоги, используя RMDir в своих разделах, поэтому я хочу, чтобы в "Требуемом пространстве" отображалась сумма всех выбранных компонентов.
Я попробовал это с помощью SectionSetSize
, но "Требуемое пространство" по-прежнему показывает 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" $0 $1 $2
IntFmt $dirSize "0x%08X" $0
# add size of data dir to appropriate section
SectionSetSize ${deldirSection} $dirSize
ClearErrors
ExecWait $INSTDIR\uninstall.exe ;
Abort
done:
FunctionEnd
1 ответ
Решение
Вызов SectionSetSize
в un.onInit
изменить деинсталлятор, а не .onInit
,