【发布时间】:2012-05-28 21:26:12
【问题描述】:
如果我在安静模式下使用 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
但是,当我在安装过程中查询该表时,该表实际上并不存在。还有其他方法可以检查是否需要重新启动?
【问题讨论】:
标签: windows installation windows-installer