如何判断是否安装了.net framework或MDAC等组件
使用NSIS插件xtInfoPlugin
在脚本开头:
!addplugindir "D:\Program Files\NSIS\Plugins"
.....
;判断是否安装了.NET framework 1.1------------------------------------
xtInfoPlugin::IsDotNetFrameworkInstalled
Pop $0
${if} $0 == true
xtInfoPlugin::GetDotNetFrameworkId
Pop $0
${if} $0 != "1.1"
Messagebox MB_OK "SETUP"
ExecPri::ExecWait "$PLUGINSDIR\dotnetfx_cn.exe" "priority_class"
${endif}
${else}
Messagebox MB_OK "SETUP"
Execpri::ExecWait "$PLUGINSDIR\dotnetfx_cn.exe" "priority_class" "high"
${endif}
;获取MDAC版本,并比较版本号是否高于2.7------------------------------------
StrCpy $2 "2.7"
Push $2
xtInfoPlugin::GetMDACVersion
Pop $1
Push $1
xtInfoPlugin::CompareVersion
Pop $0
${if} $0 >= 0
;当前版本高于2.7,满足程序要求
${else}
MessageBox MB_OK "安装程序检测到您的机器MDAC版本低于2.7,点击确定将为您安装部署MDAC 2.7"
execwait '"$PLUGINSDIR\mdac_typ.exe"'
${endif}
使用NSIS插件xtInfoPlugin
在脚本开头:
!addplugindir "D:\Program Files\NSIS\Plugins"
.....
;判断是否安装了.NET framework 1.1------------------------------------
xtInfoPlugin::IsDotNetFrameworkInstalled
Pop $0
${if} $0 == true
xtInfoPlugin::GetDotNetFrameworkId
Pop $0
${if} $0 != "1.1"
Messagebox MB_OK "SETUP"
ExecPri::ExecWait "$PLUGINSDIR\dotnetfx_cn.exe" "priority_class"
${endif}
${else}
Messagebox MB_OK "SETUP"
Execpri::ExecWait "$PLUGINSDIR\dotnetfx_cn.exe" "priority_class" "high"
${endif}
;获取MDAC版本,并比较版本号是否高于2.7------------------------------------
StrCpy $2 "2.7"
Push $2
xtInfoPlugin::GetMDACVersion
Pop $1
Push $1
xtInfoPlugin::CompareVersion
Pop $0
${if} $0 >= 0
;当前版本高于2.7,满足程序要求
${else}
MessageBox MB_OK "安装程序检测到您的机器MDAC版本低于2.7,点击确定将为您安装部署MDAC 2.7"
execwait '"$PLUGINSDIR\mdac_typ.exe"'
${endif}