加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows – 在安装之前检测MSI是否需要重新启动

发布时间:2020-12-14 02:00:52 所属栏目:Windows 来源:网络整理
导读:如果我在安静模式下启动带有MSIExec的安装程序,我可以通过检查退出代码是否为3010来检测是否需要重新启动才能完成安装.但是我希望能够以可编程形式执行的操作是测试是否在启动实际安装程序之前,安装MSI需要重新启动才能完成. 我查看了MSI API: http://msdn.
如果我在安静模式下启动带有MSIExec的安装程序,我可以通过检查退出代码是否为3010来检测是否需要重新启动才能完成安装.但是我希望能够以可编程形式执行的操作是测试是否在启动实际安装程序之前,安装MSI需要重新启动才能完成.

我查看了MSI API:

http://msdn.microsoft.com/en-us/library/windows/desktop/aa369426(v=vs.85).aspx

我确实认为我可以:

>调用MsiOpenPackage以使安装程序准备好运行
>使用以下命令调用MsiDoAction:CostInitialize,FileCost,CostFinalize,InstallValidate
>从FilesInUse表中读取记录(MSDN上的以下文档建议在运行CostFinalize / InstallValidate后创建此表:

http://msdn.microsoft.com/en-us/library/aa369546(VS.85).aspx

但是,当我在安装过程中查询它时,该表实际上并不存在.有没有其他方法可以检查是否需要重新启动?

解决方法

决定最终只在安装过程中做出.如您所知,它取决于同时运行的应用程序锁定的DLL等情况,因此它非常不稳定.

实际安装完成后,无法保证您不会收到退出代码3010.

也就是说,退出代码与使用中的文件并不紧密相关.它还可能表示无法停止服务或可能是某些其他暂时或永久性情况.在尝试之前,您无法了解是否可以停止服务.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读