0

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

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

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

如何在 WiX 中实现这一点?

4

1 回答 1

0

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

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

在 WiX 中,我无法想到会自动重新安装您的自定义安装程序通过重新安装它并提示用户删除它而导致删除的产品,如果这是正在发生的事情的话。

于 2014-12-28T18:37:12.730 回答