WIX MSI包卸载

5
我正在使用WIX制作安装程序包。当我通过双击原始MSI包卸载程序包时一切正常。
当我从控制面板卸载时,它会给我一个最小化的UI卸载。我已经在我的MSI中编写了一个自定义操作,询问用户是否要卸载某些数据库等。这在最小UI卸载中不会发生。
如何使控制面板中的卸载具有完整的UI界面?
4个回答

6
这个帖子中,Bob Arnson的回复如下:

是的,这是“添加/删除程序”小程序的行为。它总是在提示后以基本模式卸载MSI包。你唯一能做的就是设置ARPNOREMOVE来强制用户使用维护模式,并在维护UI中显示“删除”选项。


我不确定我是否同意这个观点。我认为可以在不使用维护模式的情况下进行覆盖。我90%确定我已经卸载过一些MSI游戏,它们会问我是否要删除保存的游戏,而不必进入维护UI界面。 - EBGreen
通常情况下,可以覆盖任何东西,但这并不总是一个好主意。例如,如果您的MSI正在通过SCCM / SMS远程卸载,则必须能够以静默方式运行卸载程序。ARPNOREMOVE建议还不错- MSI仍然能够在静默模式下卸载,但对于普通用户,将显示维护对话框并询问适当的问题。 - Stein Åsmul

5

使用MSI本身无法实现该功能,您需要参考引导程序/外部UI来进行卸载。本问题的其他答案指向了正确的方向。


0

您可以通过删除HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\{YourProductCode}下的'ModifyPath'注册表值,并在维护对话框中放置删除和更改选项,使ARP菜单仅显示删除/更改按钮(它将打开您的维护对话框)。

PS. 要应用此方法,请确保您没有在上述注册表键下设置以下任何注册表值为1:NoRepair、NoRemove、NoModify、WindowsInstaller。


0

查看HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall中您产品的注册表键。在那里查看卸载值,并查看是否调整它可以实现您想要的效果。

我相信MSI中有一个属性可以解决这个问题,但我无法立即记起来。搜索MSI中与注册表中找到的字符串相匹配的内容应该可以帮助您找到答案。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接