在我们产品的一个安装程序版本中,我添加了一个自定义对话框(由使用session.Message()的CA显示),它询问用户是否希望在卸载时保留一些数据。
CA的条件设置为REMOVE="ALL" AND NOT WIX_UPGRADE_DETECTED。该对话框在执行正常卸载时正确显示,但在重大升级时删除现有产品时也会显示。此时,安装程序挂起,并且只能从任务管理器中将其关闭,从而导致不正确的升级。
包含该问题的安装程序版本已经发布。我们是否可以在下一个安装程序版本中包含一些东西(进行重大升级),以解决删除现有产品时的对话框问题?
发布于 2015-05-28 02:42:31
特性UPGRADINGPRODUCTCODE在旧产品卸载时设置。当检测到WIX_UPGRADE_DETECTED时,会在即将到来的新升级设置中进行设置。
条件REMOVE="ALL“和NOT UPGRADINGPRODUCTCODE似乎是您想要的,在卸载期间显示对话框,但当卸载是由于重大升级时不显示对话框。
发布于 2015-05-27 20:39:31
您需要修复原始版本的缓存MSI。在静默安装事务期间不应该有任何UI。您需要复制原始构建的MSI,将其修改为不执行该自定义操作,然后使用msiexec /I foo.msi REINSTALL=ALL REINSTALLMODE=vomus重新缓存它,然后才能进行主要升级。或者,告诉您的用户先卸载。这就是为什么你应该在投入生产之前测试你的服务策略。微星就像一架飞机。没有“停止”或“返回”按钮。你总是在前进,你必须做相应的计划。
https://stackoverflow.com/questions/30481589
复制相似问题