当前位置:  开发笔记 > Android > 正文

如何让wix更新以前安装的程序版本

如何解决《如何让wix更新以前安装的程序版本》经验,为你挑选了3个好方法。

我用wix编写了一个安装程序,它可以很好地安装我的程序.现在我需要更新它,所以我提高了版本号但是当我去安装旧程序时,它抱怨已安装旧版本并告诉我先卸载它.

如何在重新安装之前更新或自动卸载它?



1> Mike Fuchs..:

我觉得所提供的答案都不是完整的或自成一体的,所以在挖掘了这个沼泽之后,我认为必须采取的步骤才能达到(完全不言而喻)更新工作的要求:

    确保每次构建时您的产品ID都会更改.如果不这样做,您将始终获得OP提到的"已安装"消息.

    
    

    每次产品本身更改时更改产品版本.我想最好的选择是将它绑定到一个程序集版本(也应该自动增加),但当然你也可以手动更改它.如果您在第4点使用AllowSameVersionUpgrades属性,则不严格要求此步骤,但我冒昧地说,保持产品版本不变是任何情况下的不良做法.

    
    
    

    保持您的UpgradeCode不变(例如):

    
    

    添加MajorUpgrade元素(来自Wix 3.5.1315.0).要绕过MajorUpgrade忽略产品版本修订号更改的捕获,请添加AllowSameVersionUpgrades(或者如果您更喜欢AllowDowngrades)属性.这样,您就可以从例如升级1.0.0.71.0.0.8.而不是仅仅从1.0.7.01.0.8.0.如果不这样做,您可能会在"程序和功能"中看到多个安装.

    
    

这是我的整个.wix文件(相关部分,导致用于产品绑定的程序集的两个片段大多是可选的,为了说明,你可以使用任何方式来保存程序集):






  

    

    

  

  
    
      
        
          
            
            
          
        
      
    
  

  
    
      
        
      
    
  


最后有人解释了WIX的工作原理.文档完全失败了.将产品ID更改为"*"适用于我的情况.

2> Daren Thomas..:

我检查了上面提到的所有帖子,但仍然花了很多时间试图让它工作.

提示上进行升级官方HOWTO第3步中帮助了很多:你需要一个新的Product/@Id禁用的消息"已安装此产品的另一个版本".

我使用了这个升级部分(Product of child):


  

请注意,OnlyDetect设置为"no".如果您有以下部分(Product的子项),则会触发删除旧版本:


  

另请注意,显然,只有版本号的前三个组件用于检查升级...



3> Bernd Ott..:

您需要使用升级表:


    

您还需要添加一个动作:


    
    

这是一个教程

推荐阅读
yzh148448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有