Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WiX安装程序-如何删除已安装的应用程序并在同一次运行时重新安装_Wix_Uninstallation_Reinstall - Fatal编程技术网

WiX安装程序-如何删除已安装的应用程序并在同一次运行时重新安装

WiX安装程序-如何删除已安装的应用程序并在同一次运行时重新安装,wix,uninstallation,reinstall,Wix,Uninstallation,Reinstall,我有一个基于WiX技术的自定义安装程序,它将几个.vsix包安装到Visual Studio中 如果已安装此软件包,安装程序将提供删除它们的功能。删除过程完成后,安装程序将退出 这是正常的行为,但我需要让用户在退出之前重新安装此软件包(可选)。我的意思是可选模式卸载以前的版本和安装新的一个(或相同的)与一个单一的安装程序运行 如何在WiX中实现这一点?我怀疑您的自定义安装程序可以变得更智能一些。有很多API(如MsiQueryProductState)可以告诉您是否安装了确切的ProductCo

我有一个基于WiX技术的自定义安装程序,它将几个.vsix包安装到Visual Studio中

如果已安装此软件包,安装程序将提供删除它们的功能。删除过程完成后,安装程序将退出

这是正常的行为,但我需要让用户在退出之前重新安装此软件包(可选)。我的意思是可选模式卸载以前的版本和安装新的一个(或相同的)与一个单一的安装程序运行


如何在WiX中实现这一点?

我怀疑您的自定义安装程序可以变得更智能一些。有很多API(如MsiQueryProductState)可以告诉您是否安装了确切的ProductCode,以及获取版本(MsiGetProductInfo)的方法。我猜您的自定义安装程序只是启动了所有MSI安装,而没有检查它们是否已经安装,因此会出现删除提示

您的总体计划应该是为您的自定义安装程序提供一些数据,以便它可以使用这些数据找出已经安装的内容和版本,然后将这些内容与您将要安装的内容进行比较。使用这些API。如果产品已安装,则跳过安装。如果您有一个较新的版本(使用WiX MajorUpgrade元素构建),那么只需安装它,因为它将替换现有的旧版本

在WiX中,我想不出任何东西会自动重新安装您的自定义安装程序通过重新安装并提示用户删除而导致删除的产品,如果是这样的话