WIX安装程序无法从以前安装的Windows安装程序升级SW(WIX installer Can&#

2019-09-18 07:35发布

我创建了我们的软件安装程序维克斯,现在我从以前的Windows安装程序打包SW升级时有一定的问题。

问题之前有一两件事,从一个WIX包装SW另一个维克斯包装SW升级实际上是工作的罚款,我能够卸载旧版本并安装新版本。 当旧版本的Windows Installer封装(这是我们目前的解决方案)和较新的版本是维克斯包装真正的问题发生。 基本上我的WIX安装程序无法找出一个旧版本已经安装,所以较新的版本将在不卸载旧版本进行安装。

如何使维克斯安装程序和Windows安装之间的连接:我设置维克斯的作为的UpgradeCode相同的Windows安装一个。 我也查了一些在线的例子,他们建议我目前的解决办法应该工作。 这里是我的升级部分.wxs文件的一部分:

<Upgrade Id="$(var.UpgradeCode)">

  <UpgradeVersion OnlyDetect="yes" Minimum="$(var.VersionNumber)" Property="NEWPRODUCTFOUND" IncludeMinimum="no" />
  <UpgradeVersion OnlyDetect="no" Maximum="$(var.VersionNumber)" Property="UPGRADEFOUND" IncludeMaximum="no" />           
</Upgrade>

<CustomAction Id="PreventDowngrading" Error="A software with newer version number is found on this machine" />        

<InstallUISequence>
  <Custom Action="PreventDowngrading"
          After="FindRelatedProducts">NEWPRODUCTFOUND</Custom>
</InstallUISequence>    

<InstallExecuteSequence>
  <Custom Action="PreventDowngrading"
      After="FindRelatedProducts">NEWPRODUCTFOUND</Custom>
  <RemoveExistingProducts After="InstallFinalize" />   
</InstallExecuteSequence>

有一件事可能是值得一提的是我们的SW实际上是一个Windows服务,我不知道这是否重要。 谢谢你的帮助!

Answer 1:

具有相同的UpgradeCode是不够的。 您还必须检查两个包具有相同的安装类型,即它们都得到每个用户或每台机器安装。 如果安装类型是不同的Windows安装程序将跳过删除旧版本。



文章来源: WIX installer Can't upgrade from previously installed Windows installer SW