【问题标题】:Should a WiX web installer and stand-alone installer both show up in Add/Remove programs?WiX Web 安装程序和独立安装程序都应该出现在添加/删除程序中吗?
【发布时间】:2015-09-02 00:33:39
【问题描述】:

我们有两个使用我们自己的 BA 的 WiX 安装程序。一个安装程序从 Web 获取所有包,而另一个安装程序从 exe 获取所有包。我们称它们为“Web”和“Full”安装程序。

我们有一种情况,用户可能会从 Web 安装程序安装一个包,而从完整安装程序安装另一个包。它可能不会经常发生,但它可能会发生。当用户这样做时,我们在“添加/删除程序”控制面板中有两个条目。由于我们没有以不同的方式命名安装程序,因此安装程序似乎安装了两次。

我的问题是,如果使用 WiX 创建的两个安装程序之间的唯一区别是获取软件包的方式,那么它不应该只在添加/删除程序中出现一次吗?我需要在某处设置一个代码来说明它是同一个安装程序吗?

我想我们可以将它们命名为不同的名称,以便“Web”和“Full”安装程序出现在“添加/删除程序”中,但是当您运行其中任何一个时,两个软件包都会显示为卸载,因为两个安装程序都知道它们。这不像网络安装程序只显示通过它安装的包和通过它安装的完整包。

感谢任何cmets。

【问题讨论】:

  • <Bundle...>这两个元素的升级码是什么?
  • 升级代码设置为相同的 GUID。我想也许这会有所帮助,但它对此没有做任何事情。

标签: wix wix3.9


【解决方案1】:

在版本升级场景中,对两个 <Bundle...> 软件包使用相同的 UpgradeCode 足以表明两个安装程序是同一个产品。例如,如果您首先安装包 V1.0,然后安装包 V1.1(其中两个包使用相同的升级代码)包 V1.1 将替换 添加/删除程序中的包 V1.0。

很遗憾,刻录引擎不支持相同的版本升级。如果您有具有相同升级代码的不同软件包和相同版本,则这两个软件包都会出现在添加/删除程序中。有关刻录不支持相同版本升级的更多信息,请参阅:http://wixtoolset.org/issues/3746/。

使用相同的升级代码和版本安装两个不同的包是很好的行为。例如,如果您安装了这两个包并随后删除了其中一个,则第一个包中的资源仍然安装,即使第二个包中也有相同的资源。

安装具有相同升级代码和版本的两个不同包,然后安装具有相同升级代码但更高版本的第三个包也表现良好。第三个包替换了前两个包!

您建议在添加/删除程序中更改包的名称以区分它们,这听起来是最务实的前进方式。有两个条目似乎不会影响安装状态,并且升级似乎没有问题。

【讨论】:

  • 我提出了 WIX 错误wixtoolset.org/issues/4800 用于升级代码和版本相同时添加/删除程序中的两个条目的场景。
  • 原来新的 WIX 问题引发了重复 wixtoolset.org/issues/3746。
  • 谢谢!我已将我的 cmets 添加到 issue 3746 并将其设置回未分类。我希望在我的特殊情况下,网络安装程序/完整安装程序的情况下,他们可能会优先考虑,但这可能是一个长期的目标。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-10-18
  • 1970-01-01
  • 2017-10-27
  • 2012-06-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多