在进行重大升级时,WIX会禁止卸载对话框吗?

时间:2015-05-27 11:49:12

标签: wix windows-installer installer

在我们产品的一个安装程序版本中,我添加了一个自定义对话框(由CA使用session.Message()显示),询问用户是否要在卸载时保留他的部分数据。

CA的条件设置为REMOVE="ALL" AND NOT WIX_UPGRADE_DETECTED。 执行正常卸载时会正确显示该对话框,但在主要升级时删除现有产品时也会显示该对话框。此时,安装程​​序挂起,只能从任务管理器关闭,导致升级不正确。

包含该问题的安装程序版本已经发货。 我们可以在下一个安装程序版本(进行重大升级)中包含哪些内容,以解决删除现有产品时的对话问题?

2 个答案:

答案 0 :(得分:2)

属性UPGRADINGPRODUCTCODE在旧产品中设置,因为它正在卸载。检测到WIX_UPGRADE_DETECTED在传入的新升级设置中设置。

REMOVE =" ALL" AND NOT UPGRADINGPRODUCTCODE似乎是您想要的,在卸载期间显示对话框,但不是因为主要升级而卸载时。

答案 1 :(得分:1)

您需要修复原始版本的缓存MSI。在静默安装事务期间不应该有任何UI。您需要制作原始构建的MSI的副本,将其修改为不执行该自定义操作,然后使用msiexec / I foo.msi REINSTALL = ALL REINSTALLMODE = vomus进行重新缓存,然后才能进行主要升级。或者,告诉您的用户先卸载。这就是您在投入生产之前测试服务策略的原因。 MSI就像一架飞机......没有停止或返回按钮。你总是在前进,你必须做出相应的计划。