Windows installer NSIS:在3.X版本之间切换

Windows installer NSIS:在3.X版本之间切换,windows-installer,nsis,Windows Installer,Nsis,我想让我的脚本与nsis-3.03和nsis-3.04兼容。我知道这一点: !if 0n1 > 0 ; >= 3.0b0 !endif 但是我不明白为什么0n1>0意味着>=3.0b0 我想做一些像 !if ... ; version=[3.0-3.3] ; do stuff !else if .., ; version > 3.3 ; do other stuff !else ; pass !endif 我不能使用${NSIS_PACKEDV

我想让我的脚本与
nsis-3.03
nsis-3.04
兼容。我知道这一点:

!if 0n1 > 0 ; >= 3.0b0 
!endif
但是我不明白为什么
0n1>0
意味着
>=3.0b0

我想做一些像

!if ... ; version=[3.0-3.3]
    ; do stuff
!else if  .., ; version > 3.3
    ; do other stuff
!else
     ; pass
!endif

我不能使用
${NSIS_PACKEDVERSION}
,因为它在基于debain的系统上构建错误。

!如果0n1>0;>=3.0b0
之所以有效,是因为旧版本不理解0n1,并将其视为0,因此在旧版本中它只会变成
0>0

NSIS v3.04及更高版本强制NSIS_PACKEDVERSION成为某种程度上可用的值,即使在编译时没有人指定版本

要检测.NSH中实现的特定功能,只需检查define或宏是否存在,无需执行版本检查:

!include x64.nsh
!ifdef IsNativeMachineArchitecture
...
!else
...
!endif

您实际希望使用3.04的哪一项新功能?
IsNativeMachineArchitecture
helper(请参阅)。谢谢。你可以把这些信息添加到文档中吗?对不起,忘了它。我发现了它。0nXYZ在预处理器的开头有文档记录(第5章)