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,

Другие вопросы по тегам