NSIS - 如何仅在 dll 文件版本正确的情况下安装应用程序?

问题描述 投票:0回答:1

我想将其配置为仅在 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"
installation nsis
1个回答
0
投票
!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}

© www.soinside.com 2019 - 2024. All rights reserved.