2009-04-22 58 views
17

我有一个应用程序的安装程序,需要安装在任何现有版本上,而不管版本号如何。WiX--总是覆盖以前版本

相反,我有一个安装程序,不断说我需要去添加/删除程序。对我的测试人员来说,这是非常令人沮丧的行为,因为它只是在他们的脑海中放慢了他们的真实原因 - 以前的安装程序包总是会安装,删除以前存在的任何文件,所以他们从来不必这么做。我们还有一个经过类似培训的(大型)客户群,因为我现在安装的任何版本都应该覆盖以前可能安装的任何版本。

从我所了解的情况来看,WiX模式似乎是做一些事情,比如阻止向后版本的安装和其他复杂的事情,比如修补。坦率地说,我们的客户不够聪明,无法知道或关心打补丁,合并等等,只想要一个总是有效的安装程序(我倾向于同意这些安装程序;带宽很便宜)。那么我怎么得到这个?

我已经试过这一点,但它只是似乎并不重要:

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

这是维克斯的3.0.5120版本。

编辑:按照罗布的建议有,我已经添加以下代码:

<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> 

我不添加代码不允许回滚安装;出于令我难以置信的尴尬的原因,我们只是说版本号的增加并不一定与软件良好度的增加相关。我不希望任何人被他们认为他们需要的东西锁定。

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

+2

我不太清楚您的最后一句:将产品的默认GUID设置为*为每个已编译的安装程序生成一个新的GUID。这导致每次更新并排安装新的设备。至少这就是我的想法。我仍然试图为你的问题找到一个简单的工作PoC ... – 2012-06-25 14:22:35

+0

对我来说,似乎安装永远不会并排。只要升级代码匹配,旧版本将被卸载,并且新版本将被安装到位。这不是来自wix的预期行为吗? – Shadoninja 2016-01-29 23:44:07

回答