我想使用 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]:属性更改:添加操作属性。它的值为“安装”。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 的条目,但没有足够的信息来做到这一点。