1

我的问题是是否有类似于 LogicLib 的替代插件?一个确实支持数字,17.0.8.22因为我在注册表中的程序版本是这样的数字,而且似乎 LogicLib 不支持 Windows 7。它确实像这样对其进行识别:

${If} $0 = '17.0.22.0'

但这是失败/被忽略,

${If} $0 > '17.0.22.0'
4

2 回答 2

3

正如 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
于 2012-09-14T09:50:42.970 回答
1

VersionCompare是 NSIS 附带的帮助宏的一部分...

于 2012-09-14T09:05:27.363 回答