我的问题是,是否有类似LogicLib的替代插件?一个支持17.0.8.22
之类的数字,因为我在注册表中的程序版本就是这样的数字,而且似乎LogicLib不支持Windows 7。
它确实像这样重新编写它:
${If} $0 = '17.0.22.0'
但这是失败/被忽略,
${If} $0 > '17.0.22.0'
答案 0 :(得分: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
答案 1 :(得分:1)
VersionCompare是NSIS附带的辅助宏的一部分......