独立的WIX卸载程序

时间:2013-11-01 14:25:15

标签: wix installer uninstaller

我想使用WIX创建一个独立的静默卸载程序,我可以将其发送给特定人员以获得支持,当卸载程序在他们的计算机上无法正常工作时可以双击以执行我们产品的卸载存在时间更长(某些用户使用其他工具手动删除内容)。我有一个.wxs文件使用与之前安装的程序相同的产品ID和包ID,如果我从msiexec / x运行,它将完全卸载以前安装的产品。双击它(这是所有这些用户可以做的)然而运行安装,而不是卸载。我尝试添加

<Property Id="REMOVE" Value="ALL"/>
<Property Id="ACTION" Value="UNINSTALL"/>

并确保所有InstallExecuteSequence操作都没有使用“已安装”检查,但产品在成功运行后仍然安装,日志文件显示它仍在执行ACTION INSTALL:

MSI(c)(A8:F8)[15:42:08:324]:PROPERTY CHANGE:添加ACTION属性。它的价值是'安装'。 MSI(c)(A8:F8)[15:42:08:324]:采取行动:安装 MSI(c)(A8:F8)[15:42:08:324]:注意:1:2205 2:3:ActionText 行动15:42:08:安装。 行动开始15:42:08:安装。

有没有办法强制.msi文件执行卸载而不使用命令行或添加/删除程序条目?我已经看过有关使用ARPSYSTEMCOMPONENT但没有足够信息的条目。

1 个答案:

答案 0 :(得分:0)

我不这么认为。当然,您可以使用exe来执行此操作。我还强烈建议您使用原始的msi文件,而不是使用相同的产品代码创建不同的msi。

对于exe,您可以使用任意数量的chainer / bundler / downloader。有NSIS和WiX自己的Bootstrapper,甚至是WinZip。

您还应该注意,许多运行卸载命令的程序包管理系统将首先运行install命令,如果有任何问题。理论上说,除非安装所存在的关键数据存在,否则卸载程序无法正常运行。 (E.G.,WPKG)。对于Windows Installer,这通常不适用,因为它的数据对用户是隐藏的。但是,如果他们发现并破坏了它,使用原始msi的新副本重新安装和/或修复可能会完成这项工作。

相关问题