我想将其配置为仅在 dll 文件版本与预定义文件版本匹配时安装。 剧本应该怎么写?
GetDllVersion "$INSTDIR\MyDLL.dll" $R0 $R1
IntOp $R2 $R0 / 0x00010000
IntOp $R3 $R0 & 0x0000FFFF
IntOp $R4 $R1 / 0x00010000
IntOp $R5 $R1 & 0x0000FFFF
StrCpy $0 "$R2.$R3.$R4.$R5"
!include LogicLib.nsh
Section
SetOutPath $INSTDIR
GetDllVersion "$INSTDIR\MyDLL.dll" $R0 $R1
IntOp $R2 $R0 / 0x00010000
IntOp $R3 $R0 & 0x0000FFFF
IntOp $R4 $R1 / 0x00010000
IntOp $R5 $R1 & 0x0000FFFF
StrCpy $0 "$R2.$R3.$R4.$R5"
${If} "$0" == "1.2.3.4"
# ${OrIfNot} ${FileExists} "$INSTDIR\MyDLL.dll" ; Uncomment this if you want to install it if not present
File "myfiles\MyDLL.dll"
${EndIf}
SectionEnd
如果你想从自己的系统中获取与你比较的版本,你可以使用
GetDLLVersionLocal
。
如果需要比较版本范围,请在 WordFunc.nsh 中使用
${VersionCompare}
。