我正在写自定义BA。捆绑包中的Msi包,安装条件配置错误。 (它在安装之前检查注册表项,也在UNINSTALLING之前检查)。问题是:如果找不到注册表项,则无法卸载msi包。 Msi安装条件无法更改。在安装/卸载时,如何强制msi忽略自定义BA中的条件。
有没有办法使用msiexec运行强制卸载?
任何帮助将非常感谢! 谢谢!
答案 0 :(得分:1)
这非常烦人,我自己一直处于类似情况。开发安装程序的第一条规则是仅在可以回滚到已知状态的虚拟机中测试它们,但现在为时已晚。
有两种方法,首先尝试轻松一种方法。找到%windir%\installer\
中缓存的卸载程序MSI。它将被重命名,因此可以通过时间戳找出它是哪一个。记下文件的名称。构建一个新的安装程序,没有阻止卸载的要求,并重写您之前记下的文件名。现在尝试卸载它。如果有效,那就完成了。
如果这不起作用,您将需要对MSI进行一些黑客攻击以允许它干净地卸载。您需要安装Orca工具,它允许您查看组成MSI的原始表。这对于MSI开发非常有用,因此您可能还想安装它。它将使您更好地了解MSI工具链。它包含在Windows平台套件中。如果您使用的是Visual Studio,则可以在类似于C:\Program Files (x86)\Windows Kits\8.0\bin\x86
的地方找到安装程序。
安装Orca后,您需要在方法1中找到%windir%\installer\
中的安装程序。在Orca中打开该MSI,在正确的表中找到有问题的操作并进行相应的修改。你在这里稍微有点自己,但如果你不能把它固定下来,请发表评论。然后保存MSI,看看是否有效。
我能够使用它来卸载我在学习使用虚拟机之前创建的一些非常糟糕的安装程序。