NSIS打包软件,${VersionCompare}命令报错

来源:互联网 发布:观耳朵知长寿 编辑:程序博客网 时间:2024/05/08 23:30

    用NSIS 打包软件,想在软件安装前检测当前环境是否已经安装过了该软件,若已经有软件安装,比较已经安装软件的版本和待安装软件的版本,若待安装软件版本比较高,则提示用户原有软件版本比较低,请更新程序.

   修改scrip.nsi,增加内容如下;

  添加头文件 !include "WordFunc.nsh"

  添加代码:

  Function  .onInit

  XXXXXXXX;此处代码判断已经有该软件安装了

  ReadRegStry $R2  HKML "SoftWare\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_VERSION}"  "DisplayVersion" ;读取已安装软件版本,放在$R2中

  ${VersionCompare}  "$R2"  "${PRODUCT_VERSION}"  $1 ;比较已安装软件和待安装软件的版本,并把结果放在$1中,结果有三个,1,2,和0

  StrCmp $1  "1"  0  +3

  MessageBox MB_OK  "待安装版本比已安装版本低"

  Abort

  StrCmp $1  "2"  0  +3

  MessageBox MB_OK  "待安装版本比已安装版本高"

  Abort

  StrCmp $1  "0"  0  +3

  MessageBox MB_OK  "待安装版本和已安装版本一样"

  Abort

FunctionEnd

 

报错信息为:

Invalid Command :${VersionCompare}

到底问题出在哪里了呢?找了半天没找到原因,请大虾们指点,呜呜呜呜

 

 

原创粉丝点击