我的问题是是否有类似于 LogicLib 的替代插件?一个确实支持数字,17.0.8.22因为我在注册表中的程序版本是这样的数字,而且似乎 LogicLib 不支持 Windows 7。它确实像这样对其进行识别:
${If} $0 = '17.0.22.0'
但这是失败/被忽略,
${If} $0 > '17.0.22.0'
我的问题是是否有类似于 LogicLib 的替代插件?一个确实支持数字,17.0.8.22因为我在注册表中的程序版本是这样的数字,而且似乎 LogicLib 不支持 Windows 7。它确实像这样对其进行识别:
${If} $0 = '17.0.22.0'
但这是失败/被忽略,
${If} $0 > '17.0.22.0'
正如 Anders 所说,VersionCompare宏可以处理复杂的版本比较。
这是一个小例子:
!include "logiclib.nsh"
!include "wordfunc.nsh"
OutFile "version.exe"
!define v1 "1.4.0"
!define v2 "1.3"
Section
    ${VersionCompare} "${v1}" "${v2}" $0
    ${select} $0
        ${case} 0
            messagebox MB_OK "${v1} = ${v2}"
        ${case} 1
            messagebox MB_OK "${v1} newer than ${v2}"
        ${case} 2
            messagebox MB_OK "${v1} older than ${v2}"
    ${endselect}
SectionEnd
VersionCompare是 NSIS 附带的帮助宏的一部分...