我有一个基于WiX技术的自定义安装程序,它在Visual Studio中安装了几个.vsix软件包。
如果已安装此软件包,则安装程序会提供删除它们。删除过程完成后,安装程序退出。
这是正常行为,但我需要在退出之前为用户提供重新安装此软件包(可选)。我的意思是可选模式卸载以前的版本并通过一次安装程序安装新版本(或相同)。
如何在WiX中实现这一点?
答案 0 :(得分:0)
我怀疑您的自定义安装程序可以更聪明一些。有很多API(如MsiQueryProductState)可以告诉您是否安装了精确的ProductCode,以及获取版本的方法(MsiGetProductInfo)。我的猜测是你的自定义安装程序只是启动所有MSI安装,而不检查它们是否已经安装,因此删除提示。
您的总体规划应该是让您的自定义安装程序可以使用一些数据,以便找出已安装的内容和版本,然后将这些数据与您要安装的内容进行比较。使用这些API。如果已安装产品,请跳过安装。如果您有更新的版本(使用WiX MajorUpgrade元素构建),则只需安装它,因为它将替换现有的旧版本。
我无法想到在WiX中会自动重新安装自定义安装程序导致删除的产品,重新安装它并提示用户删除它,如果这是正在发生的事情。