wix 安装程序 - 支持升级和同时安装多个

Posted

技术标签:

【中文标题】wix 安装程序 - 支持升级和同时安装多个【英文标题】:wix installer - supporting upgrade and more than one installation at the same time 【发布时间】:2013-10-18 08:57:27 【问题描述】:

我知道您可以升级版本,删除旧安装并安装新版本。 而且我知道您还可以支持在同一台机器上安装两个相同的软件。

有没有一种方法可以创建一个 GUI 安装,让用户选择是升级还是保留旧版本并在旧实例之外安装新实例?

【问题讨论】:

【参考方案1】:

是的,但这并不简单。

基本上,您从两个升级表条目开始。一种是假的并且永远不会检测到产品,另一种是检测到您以前的版本但具有 DetectOnly 属性集。

接下来,您需要创建一个自定义对话框,其中包含一个单选按钮(安装新的、升级现有的)和一个包含先前检测到的产品条目的列表框。您将使用自定义操作用临时行填充 ListBox 表,以反映之前要升级的合格产品。

如果用户选择安装新的,您只需继续。如果他们选择现有的升级,您可以从“仅检测”升级操作属性中解析出产品代码,并将它们放入“假”操作属性中。现在删除现有产品将有一些东西要删除。

它们是您想要提出和执行的各种业务规则,涵盖了静默安装故事,并且还有一种改变 INSTALLDIR 的方法,以便产品可以并排放置。

这是基本模式,但您必须提出有关它的所有细节。我已经多次这样做了,效果非常好。

【讨论】:

这真的很奇怪,我们必须做这样的事情才能从安装程序中获得一个不常见的行为。 这实际上是一种非常不常见的行为。大多数产品并排安装(想想 Visual Studio)或就地升级。很少有产品会在安装过程中将此决定交给用户。 我想看看如果你不介意我能不能得到其他答案。我正在尝试编写您在我们发言时提出的建议。如果它对我有用,我会尽快接受。

以上是关于wix 安装程序 - 支持升级和同时安装多个的主要内容,如果未能解决你的问题,请参考以下文章

如何实现 WiX 安装程序升级?

WiX 刻录包安装程序 - 升级安装时未更新 ExePackage

WiX 安装程序在卸载时删除文件,但在升级时不删除

无需卸载的 Wix 安装程序升级

WiX“重大升级”不会在降级时完全安装应用程序

如何在升级过程中运行捆绑包时,如何在WIX(Windows安装程序xml)引导程序项目中将按钮文本更改为“升级”?