【发布时间】:2016-03-11 01:39:41
【问题描述】:
我继承了一个安装程序脚本,但它声称需要的空间是实际需要的两倍,这让我很恼火。
我发现这是由于每个部分如何使用SetOverwrite(因为它们被重新用于修复安装?)。我知道由于SetOverwrite 的工作方式(见下文),有必要在每个 If/Else 块中保留重复的File 命令,但我已经确认它会导致自动部分大小计算加倍。
${MementoSection} $(APP_Section_SecHelp) SecHelp
SetDetailsPrint textonly
DetailPrint $(APP_DetailPrint_SecHelp)
SetDetailsPrint listonly
SetOutPath $INSTDIR
SectionIn 1 2
${If} $SetOverwriteOn == TRUE
SetOverwrite ifnewer
File /r "${APP_SOURCE_DIR}\Help"
${Else}
SetOverwrite off
File /r "${APP_SOURCE_DIR}\Help"
${EndIf}
SectionGetFlags ${SecHelp} $SecHelp_GetFlag
${MementoSectionEnd}
这是一个糟糕的设计模式,我应该改变吗?我需要添加一个hack来调用SectionGetSize,除以2并调用SectionSetSize吗?
【问题讨论】:
标签: nsis