在我们产品的一个安装程序版本中,我添加了一个自定义对话框(由CA使用session.Message()
显示),询问用户是否希望在卸载时保留他的一些数据。WIX在进行重大升级时抑制卸载对话框?
CA的条件设置为REMOVE="ALL" AND NOT WIX_UPGRADE_DETECTED
。 正常卸载时正确显示该对话框,但在主要升级时删除现有产品时也会显示该对话框。此时,安装程序会挂起,只能从任务管理器关闭安装程序,导致升级不正确。
包含问题的安装程序版本已发货。 我们可以在下一个安装程序版本中包含哪些内容(即进行重大升级),可以在删除现有产品时解决对话框问题?
我已经在新版本(主要升级)中创建了一个CA,如您所描述的那样调用msiexec(使用更正后的msi)。该操作在FindRelatedProducts之后运行,但由于某些原因,缓存的msi未被替换,并且升级崩溃。但是,当我试图从控制台应用程序调用msiexec时,缓存的msi被正确替换。你知道为什么会发生这种情况吗? –
MSI具有一个互斥体,可防止两个并发安装。一个msi不能安装另一个MSI(有效的recache)。您需要在运行新的MSI之前运行该命令。 –
我猜测我必须在安装主要升级之前以某种方式从软件包中运行msiexec命令。或者,你的意思是我必须创建一个单独的应用程序来运行命令? –