我们使用installshield作为installscript MSI项目类型创建的安装程序将安装SQL Express 2014 SP(x64)作为先决条件。但是,当系统有挂起的重新启动时,SQL Express安装将失败。我们希望安装程序在安装SQL Express之前检查系统是否有挂起的重新启动。目前,SQL express被定义为设置先决条件。
在SQL Express安装之前进行此检查的最佳方法是什么?
以下代码检查系统挂起重启条件,并按预期工作。
function CheckSystemReboot(hMSI)
OBJECT objSysInfo;
string szMsg;
NUMBER nReturn;
begin
// TODO: Perform custom initialization steps, check requirements, etc.
set objSysInfo = GetObject("");
set objSysInfo = CreateObject("Microsoft.Update.SystemInfo");
if IsObject(objSysInfo) then
if objSysInfo.RebootRequired then
szMsg ="A system reboot is pending. Please reboot your system before
installing this product";
MessageBox ( szMsg , SEVERE );
return ERROR_INSTALL_FAILURE;
else //test only
szMsg = "A system reboot is not needed";
MessageBox ( szMsg , SEVERE );
return ERROR_SUCCESS ;
endif;
endif;
end;
答案 0 :(得分:1)
Installscript MSI项目类型充满了错误和问题 - 只是为了传达信息。特别是与我的经验中的升级方案有关。我永远不会使用这个项目类型。
除此之外,您不知道该脚本是否有效?我想你可以看看这些脚本正在做什么(他们检查的注册表位置):
如果这不是您要求的,可能会更新您的问题?