如何解决当卸载过程中 MSI 失败时,是否有一种“最佳”方法可以强制“卸载”产品?
由于我的 CustomAction 中的错误,我的安装在卸载时失败。我已经修复了这个错误,但我现在有一台安装了该产品的测试机器,但我无法卸载它(不断回滚并停留)。
过去(几年前),我使用 Windows SDK 附带的 msizap.exe。但它似乎不再随之而来。我安装了它,找不到它。我唯一的猜测是它在 Windows 10 中不再相关。
无论如何,有没有最好的方法来强行删除该产品,以便 Windows 不再认为它已安装?
解决方法
msizap.exe:您说得对,msizap.exe
早就被弃用了。
损坏的卸载解决方法:这个问题很常见。你可以找到a list of approaches for these kind of uninstall problems here。
- 最简单和最快的方法可能是使用 Microsoft FixIt tool 删除包。从外观上看,这基本上是“取消注册”,在这方面类似于
msizap.exe
。 - 如果这只是一台机器,您可以使用 Orca (how to find cached msi path,powershell version,using Windows Explorer - point 2) 破解缓存的安装数据库 - 如果涉及多台机器,您应该打补丁。请参阅上面链接中的详细信息。
虚拟机:很明显,但只是提一下,您应该检查虚拟机上的设置,以便在遇到“开发和QA 错误”之类的。
自定义操作标志:您还可以为每个自定义操作添加一个条件,以便您可以通过发送到 msiexec.exe
。
如果您的标志是属性 RUNCA="1"
,那么您可以通过命令行将此标志属性设置为 0
来禁用它 -这是对软件包卸载功能破坏的一点预防 - 您可以在安装/卸载期间完全禁用自定义操作 - 它甚至可能对您的技术支持人员和实际安装有用:
msiexec.exe /x {PRODUCT-CODE} RUNCA=0
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。