我的Wix安装程序正在安装我的程序,但它已卸下以进行卸载。文件过早删除,需要进一步下载。卸载程序失败并恢复其更改。
这意味着我无法从我的机器中删除软件包,因此无法安装我的安装程序的任何其他版本(相当不便)。如何强行拆除包装?
答案 0 :(得分:22)
在C:\Windows\Installer
中找到您的软件包,其中Windows保存已安装的MSI软件包的副本。名称是随机生成的,因此您必须查看文件的创建日期。
使用Orca打开MSI文件。 (遗憾的是,orca安装程序没有简单的下载。您可以通过安装Windows 10 SDK的" MSI工具"然后在C:\Program Files (x86)\Windows Kits
中搜索orca.msi来获取它。 )
现在您应该可以卸载软件包了。
编辑:根据@ darkrock76的回答,步骤1的文件夹也可以是C:\ProgramData\Package Cache\
。我在Windows 7 SP1机器上都有。我无法立即找到关于此的文档。
更新:嗨,Wim,感谢您之前提供的免费注册COM信息!有关此卸载问题的几个更新:darkrock76s答案不正确,please see my comment to him below。此外,您可以将InstallExecuteSequence表中的条件设置为0(数字零== false),以防止它永远运行,而不是删除上面步骤3中的自定义操作。删除自定义操作表条目会留下一些损坏的外键引用(我猜可能会失败)。在诉诸此攻击之前,也可以尝试The Microsoft FixIt tool。除了Orca之外还有some alternative, free MSI tools / editors / viewers(朝下)。也许用户也应该在编辑前制作原始MSI的拉链,但我猜这是隐含的。一旦你得到它,请删除这个凌乱的评论 - 如果我有时间的话,我可以写一些强制卸载的强制摘要(FixIt MS工具,使用次要升级,直接编辑缓存的MSI,应用转换为卸载,以及其他任何东西)。随着部署摇滚:-)。你的免注册COM回答过去曾帮助过我(Stein)。非常感谢。
忘了一件事:you can find the actual cache MSI file using Powershell。这是针对一个软件包you can also get for all packages(向下滚动到第一个屏幕截图)。
答案 1 :(得分:8)
此命令通常适用于我:
msiexec /fv installer.msi
它在某种程度上会记录安装程序,因此您可以使用更正的安装程序再次尝试。
有一次这个命令不起作用,我不得不使用Microsoft FixIt。它解决了这个问题(对我来说非常震惊)。
答案 2 :(得分:6)
根据您所描述的行为的确切原因,您可能至少有几个选项。
如果失败的原因是在卸载时运行的自定义操作,并且此自定义操作受某些属性影响,您可以尝试通过命令行传递所需的值:
msiexec /x {YOUR-PRODUCTCODE-HERE} RUNMYACTION=false
在此示例中,RUNMYACTION
是一个参与自定义操作条件的Windows Installer属性,如果您将false
作为其值传递,则该操作将不会运行。
否则,您可以修复逻辑(或者只显式禁用自定义操作)并构建新的MSI包。然后将其上传到该目标计算机,并按以下方式运行:
msiexec /i YourPackage.msi REINSTALL=ALL REINSTALLMODE=vomus
此处YourPackage.msi
是一个新的固定包,REINSTALL=ALL
指示msiexec
使用此新包重新安装产品,并REINSTALLMODE=vomus
(v
它的一部分)将重新缓存MSI包,你将能够以正常的方式将其删除。
附注:您应该在虚拟机上测试您的安装,以免冒着真实风险。
答案 3 :(得分:4)
仅供参考:在Windows 8.1中,安装程序已移至此处:C:\ ProgramData \ Package Cache \
答案 4 :(得分:0)
如果你真的很绝望,以上所有解决方案都不能尝试
这将清除安装程序在机器上放置的所有内容
小警告
不知道你想用什么选项运行msizap(对于一个选项列表,首先运行msizap /?)。
答案 5 :(得分:-1)
我通常只是在注册表中查找<Your Installer's Name>.msi
或<Your Installer's Company Name>
,并从Windows安装程序树下的某些Products
中删除一些卸载密钥,所有内容通常都能正常运行之后,虽然这个 WOULD 会像缓存的安装程序那样留下一些东西,并且每个安装的文件可能还有大量的其他注册表项,但是 ALWAYS 在开发安装程序时对我有用老实说,谁关心一个MSI是否遗留下来并缓存在某个地方?你正在使用机器进行开发,对吗?
答案 6 :(得分:-1)
我也从Microsoft使用了这个小工具
基本上,该工具可用于“修复包括损坏的注册表项在内的问题,这些注册表项会阻止您安装或删除程序”
修复的问题:
64位操作系统上的注册表项损坏
控制更新数据的注册表项损坏
阻止安装新程序的问题
阻止现有程序完全卸载或更新的问题
问题阻止您通过“控制面板”中的“添加或删除程序(或程序和功能)”来卸载程序
它可以用于: