首页 文章

WIX安装程序无法从以前安装的Windows安装程序SW升级

提问于
浏览
3

我正在为我们的软件创建一个WIX安装程序,现在从以前的Windows Installer打包软件升级时遇到了一些问题 .

在问题出现之前,从一个WIX打包的SW升级到另一个WIX打包的SW实际上工作正常,我可以卸载旧版本并安装新版本 . 当旧版本打包Windows Installer(这是我们当前的解决方案)并且较新版本是WIX打包时,会出现真正的问题 . 基本上我的WIX安装程序无法找到已安装旧版本的版本,因此将安装较新版本而不卸载旧版本 .

如何在WIX安装程序和Windows安装程序之间 Build 连接:我将WIX的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服务,我不确定这是否重要 . 谢谢你的帮助!

1 回答

  • 7

    拥有相同的升级代码是不够的 . 您还必须检查这两个软件包是否具有相同的安装类型,即它们是按用户还是按机器安装的 . 如果安装类型不同,Windows Installer将跳过删除旧版本 .

相关问题