Wix自定义条件未安装,卸载和升级

时间:2016-05-02 10:30:30

标签: wix

我有一个运行vbscript来创建已安装应用程序的备份。 我已将其添加到自定义操作中。

未安装或UPGRADINGPRODUCTCODE

问题是在升级过程中自定义操作正在运行两次。所以我将再安装一个以前安装过的备份文件夹。

1 个答案:

答案 0 :(得分:2)

UPGRADINGPRODUCTCODE不是您想要使用的。你应该使用NOT UPGRADINGPRODUCTCODE。

此属性由安装程序在安装MSI的服务器上下文中运行当前安装的msi版本时设置。这是在升级期间运行“RemoveExistingProducts”时运行的内容。您现在遇到的问题是您正在安装的安装具有“NOT Installed”= true和“UPGRADINGPRODUCTCODE”= false。当安装程序运行上一次安装以删除它时,此安装具有“NOT Installed”= false但“UPGRADINGPRODUCTCODE”= true,因此它将运行自定义操作。

我会考虑将条件设定为

WIX_UPGRADE_DETECTED AND NOT UPGRADINGPRODUCTCODE AND NOT REMOVE~="ALL"

Here's有关WIX_UPGRADE_DETECTED属性的一些信息

所以这个条件只会在安装检测到以前的版本并且我们正在升级时运行,但是当我们只删除旧版本时将不会运行,并且在卸载时不会运行。我还会安装AfterInstallInitialize之后的RemoveExistingProducts,以便在删除或更新任何文件之前,在MSI安装的服务器上下文中的最早点创建备份。