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