Space 在 MUI_PAGE_DIRECTORY 上的要求是 0.0KB

Space required on MUI_PAGE_DIRECTORY is 0.0KB

我正在为 Windows 应用程序编写安装程序。我正在为 NSIS 使用 MUI。安装程序的页面之一是目录页面,其中有 "Space required" 字段。问题是所需的 space 总是 0.0KB。

我一直在寻找一些答案,但我发现 space 是自动计算的。我想知道是否有某种方法可以检查此宏获得的文件夹大小?或者有什么其他想法?

;Pages

; Installation
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_LICENSE                "@CPACK_RESOURCE_FILE_LICENSE@"
!insertmacro MUI_PAGE_DIRECTORY
Page custom pgAppLanguageCreate

我找到了导致问题的原因。 在 "Installer Section" 中,我使用了一个复制所有文件的函数。 我没有在这里调用它,而是粘贴了整个函数,现在就可以了。看起来您不能在函数中使用 "File" 指令,因为它不会以这种方式将大小增加到所需的 space 。 如果你在部分中使用它,它会完美地工作。

; Installer Sections     
Section "install" Install 

    ${If} $instState != "1"
        Call deleteAllFiles
        Call deleteInfoFromRegistry
        Call deleteShortcut
    ${EndIf}


    SetOutPath "$INSTDIR"

    ; copy files
    File ${ICON}
    File "slicer_license"
    File /r "${INSTALL_FILE}\package\"
    ;File "README.txt" ;Readme file.
    Call createShortcut
    Call addInfoToRegistry
    Call setAppLanguageShortcut
    Call createLanguageFile

SectionEnd

大小由 File 指令自动计算 Sections 加上你用 AddSize 添加的任何额外内容。

如果您对此计算不满意,您可以使用 SectionSetSize.onInit 中强制使用特定大小。