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

mmr*_*mmr 18 wix overwrite previous-installation

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

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

从我可以收集的信息来看,似乎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,这显然是问题所在.

Rob*_*ing 18

你想要一次重大升级.在WiX.chm"如何"中有一个专题的主题(也在网上:http://wix.sourceforge.net/manual-wix3/major_upgrade.htm ).

  • @mmr 你能分享一下你最终做了什么吗?提供的链接似乎没有完全回答您的问题,如果有的话,它会告诉您如何做与您想要的相反的事情。 (2认同)