相关疑难解决方法(0)

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

在工作中,我们使用WiX来构建安装包.我们希望安装产品X会导致在该计算机上卸载该产品的先前版本.

我已经在互联网上的几个地方读过有关重大升级的内容,但无法让它发挥作用.任何人都可以指定我需要采取的确切步骤,以便将卸载以前的版本功能添加到WiX吗?

installer windows-installer wix

229
推荐指数
10
解决办法
12万
查看次数

WiX--始终覆盖以前的版本

我有一个应用程序的安装程序,无论版本号如何,都需要安装在任何现有版本上.

相反,我有一个安装程序,经常说我需要去添加/删除程序.对于我的测试人员而言,这是非常令人沮丧的行为,因为它只会让他们放慢速度而没有真正的理由 - 以前的安装程序包总是只安装,删除以前存在的任何文件,所以他们从来不必这么做.我们还有一个(大)客户群经过类似的培训,因为我现在安装的任何版本都应该覆盖我之前可能拥有的任何安装.

从我可以收集的信息来看,似乎WiX范例是做阻止向后版本安装和其他复杂事情的事情,比如修补.坦率地说,我们的客户不够聪明,不知道或不关心修补,合并等等,只想要一个总是有效的安装程序(而且我倾向于同意它们;带宽便宜).那我该怎么做呢?

我试过这个,但它似乎并不重要:

<InstallExecuteSequence>
  <RemoveExistingProducts Before="InstallInitialize"/>
</InstallExecuteSequence>
Run Code Online (Sandbox Code Playgroud)

这是WiX的3.0.5120版本.

编辑:根据Rob的建议,我添加了这段代码:

<InstallExecuteSequence>
  <RemoveExistingProducts After="InstallInitialize"/>
</InstallExecuteSequence>

<Upgrade Id="27cb76c7-544e-465f-b1f3-b11d9a49e416">
  <UpgradeVersion Minimum="0.8.0"
                  IncludeMinimum="yes"
                  Maximum="1.5.1"
                  Property="OLDERVERSIONBEINGUPGRADED" />
</Upgrade>
Run Code Online (Sandbox Code Playgroud)

我没有添加代码以不允许回滚安装; 由于令我非常尴尬的原因,我们只是说版本号的增加并不一定与软件良好性的增加相关.我不希望任何人被锁定在他们认为需要的东西之外.

另外,非常重要的是将产品的默认GUID更改为"*",以便使用不同的安装程序创建不同的GUID,这显然是问题所在.

wix overwrite previous-installation

18
推荐指数
1
解决办法
2万
查看次数