WIX Marterupdate元素无法正常工作



我正在使用Wix 3.10

以下WXS文件定义了我的WIX安装程序。但是,我最近想在安装新版本之前删除旧版本。令我惊讶的是,它在本地起作用,但是当它由TFS构建时,其行为不同,请参见以下示例

假设我已安装了2.0.1版

  1. 我为该项目排队一个新的构建,并让TFS创建我的2.0.2 MSI
  2. 我运行2.0.2 MSI
  3. 我检查程序和功能接口,我看到2.0.1和2.0.2
  4. 我启动了另一个TFS构建并获得2.0.3 MSI
  5. 我运行2.0.3 MSI
  6. 我检查程序和功能窗口,我看到2.0.2和2.0.3(2.0.1已删除!)

有人可以解释为什么我会得到如此奇怪的行为吗?我有一个前构建脚本,将product Id元素更新为新的GUID和version元素,以匹配TFS构建编号(因此,我可以保证每个构建上有一个新的GUID和一个新版本编号)

这是我的WXS

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
  <Product Id="*"
           Name="xxx"
           Language="1033"
           Version="0.0.0.0"
           Manufacturer="xxx"
           UpgradeCode="FC30BA3E-619C-4247-988E-2823831E9E04">
    <Package Compressed="yes"
             InstallerVersion="200"
             Manufacturer="xxx"
             Description="xxx"
             Comments="(C) 2016 xxx"
             Platform="x64"
             InstallScope="perMachine"/>
             ...
    <MajorUpgrade
             Schedule="afterInstallInitialize"
             DowngradeErrorMessage="A newer version of [ProductName] is already installed."/>
  </Product>
</Wix>

好吧,事实证明该版本应为3个部分,而不是4个部分例如:1.0.0.1无法正常工作1.0.1为我的案件

相关内容

  • 没有找到相关文章

最新更新