我使用WIX为现有产品创建新的安装程序。安装程序非常简单 - 只需将几个dll放入磁盘上的指定文件夹即可。
在该字段中,我的用户已经拥有包含旧dll的文件夹(因为他们安装了旧的MSI - 在VS中使用* .vdproj项目创建)。
我的问题是,在安装WIX之后,我有旧的MSI和新的Wix MSI都出现在添加/删除中。预期(?因为这两个是两种不同类型的MSI')。我需要某种升级机制 - 所以我想知道我是否可以从WIX中调用旧的MSI卸载程序。或者以某种方式处理旧的添加/删除条目(也许是一个注册表黑客?)
答案 0 :(得分:2)
假设使用相同的上下文(每个用户 - >每个用户或每台计算机 - >每台计算机)安装旧安装和新安装,您可以使用MajorUpgrade规则查找旧版本和摆脱它。您可以通过同步UpgradeCode属性并使用更高的ProductVersion来执行此操作,也可以通过使用旧版UpgradeCode GUID创建第二个升级规则来执行此操作。
如果旧安装是按用户进行的,并且您希望新安装是每台计算机,则运气不佳。 MSI不支持此功能。通常,我只支持每台机器安装和硬编码ALLUSERS属性,并从安装程序UI体验中删除CustomerInformation对话框。这不是基于VDPROJ的安装程序的默认体验。