我使用维克斯创建现有产品新的安装程序。 安装程序非常简单 - 只是丢给几个DLL的到磁盘上的指定文件夹。
在现场,我的用户已经有旧的DLL在他们的文件夹(因为它们安装了旧MSI - 使用VS一个* .vdproj项目创建)。
我的问题是我安装后维克斯,我都老MSI和新维克斯MSI出现在添加/删除。 预期(?因为这2是两个不同类型的微星的?)。 我需要某种形式的升级机制 - 所以我在想,如果我可以从一个维克斯内调用旧的MSI卸载程序。 或交替莫名其妙老拿添加的保健/删除条目(注册表也许黑客?)
假设旧安装和新的安装使用相同的情况下被安装(每用户 - >每个用户或每台机器 - >每台机器),您可以使用一个MajorUpgrade规则找到旧版本,并摆脱它。 您可以通过同步了的UpgradeCode属性和使用更高的ProductVersion,也可以使用传统的UpgradeCode GUID创作第二个升级规则去做做到这一点。
如果旧的安装为每个用户,并且希望新的安装是每台机器你是出于运气。 这不是由MSI支持。 通常我只支持每台机器的安装和硬编码ALLUSERS属性,并从安装程序的UI体验删除CustomerInformation对话框。 这不是基于VDPROJ安装程序默认的经验。