1

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

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

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

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

任何意见表示赞赏。

4

1 回答 1

1

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

不幸的是,刻录引擎不支持相同的版本升级。如果您有具有相同升级代码相同版本的不同软件包,则这两个软件包都将出现在Add/Remove Programs中。有关不支持相同版本升级的刻录的更多信息,请参见:http ://wixtoolset.org/issues/3746/ 。

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

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

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

于 2015-06-17T07:52:04.493 回答