MSI:如何检查产品是否真正安装

4

我有一个通过互联网安装多个MSI产品的系统。现在遇到这样的情况:测试人员删除了产品文件夹,但没有删除注册表键值。我的系统通过注册表发现产品已经存在,尝试升级它,但实际上该产品并不存在。

是否有任何MSI函数可以帮助我在静默模式下确定产品状态,并在用户删除文件时卸载整个产品?


当前解决方案 - 检查主文件是否可用。主文件路径存储在注册表中,并由MSI删除。 - se_pavel
1
我不是完全确定你在这里询问什么。我认为你所建议的是,如果产品的应用程序文件已从系统中删除,则希望在卸载模式下启动MSI而不是修复模式。我建议您使用MsiGetComponentPath()函数获取组件的关键路径,然后检查该文件是否存在。如果文件丢失,则使用API删除而不是升级产品。 - Stephen Connolly
1个回答

1

msizap正好满足了我的需求,但它不可分发。 - se_pavel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接