我的问题是是否有类似于 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 附带的帮助宏的一部分...