【发布时间】:2010-11-19 03:36:22
【问题描述】:
我正在使用 WIX 作为安装程序包。当我通过双击原始 msi 包卸载包时,一切都很好。
当我从控制面板卸载时,它会给我一个最小的 UI 卸载。我在我的 MSI 中写入了一个自定义操作,询问用户是否要卸载某些数据库等。这不会发生在最小的 UI 卸载上。
如何让控制面板中的 uinstall 使用完整的 UI?
【问题讨论】:
标签: wix windows-installer
我正在使用 WIX 作为安装程序包。当我通过双击原始 msi 包卸载包时,一切都很好。
当我从控制面板卸载时,它会给我一个最小的 UI 卸载。我在我的 MSI 中写入了一个自定义操作,询问用户是否要卸载某些数据库等。这不会发生在最小的 UI 卸载上。
如何让控制面板中的 uinstall 使用完整的 UI?
【问题讨论】:
标签: wix windows-installer
在 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall 中查看您的产品的注册表项。在那里查看卸载值,看看调整它是否符合您的要求。
我很确定 MSI 中有一个属性可以解决您的问题,我只是想不起来。不过,在 MSI 中搜索您在注册表中找到的字符串应该可以帮助您找出答案。
【讨论】:
Bob Arnson 在this thread 的回复:
是的,这就是 添加/删除程序小程序。它总是 以基本模式卸载 MSI 软件包 提示后。你唯一的事 可以做的是设置 ARPNOREMOVE 来强制 用户使用维护模式 - 和 在您的 维护界面。
【讨论】:
您无法在 MSI 中以本机方式做到这一点。您需要参考 boostrapper/外部 UI 来进行卸载。这个问题的其他答案指向了正确的方向。
【讨论】:
您可以通过删除 HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\{YourProductCode} 下的“ModifyPath”注册表值,使 ARP 菜单仅显示应用程序的“删除/更改”按钮(它会打开维护对话框)。并在您的维护对话框中放置删除和更改选项。
PS。要应用此方法,请确保您没有在上述注册表项下将以下任何注册表值设置为 1:NoRepair、NoRemove、NoModify、WindowsInstaller。
【讨论】: