Wix:如何限制对主要版本号的主要升级?

标签 wix limit upgrade

我需要基于 wix 的安装程序的以下行为:

  • 主要版本 1.x.x 行中的每个设置都应主要更新任何
    1.x.x 系列的先前版本。
  • 主要版本中的每个设置
    2.x.x 行应该主要更新 2.x.x 行的任何先前版本,但
    单独留下 1.x.x 行。

  • 我虽然可以使用以下代码使其工作,但设置删除了以前的 1.x.x 版本。我是在说些什么吗?这甚至可能吗?
        <Upgrade Id="myguid">
            <UpgradeVersion OnlyDetect="yes" Minimum="2.0.0.1" Property="NEWERVERSIONDETECTED" IncludeMinimum="no" />
            <UpgradeVersion OnlyDetect="no" Maximum="2.0.0.1" Property="OLDERVERSIONBEINGUPGRADED" IncludeMaximum="no" />
        </Upgrade>
        <InstallExecuteSequence>
            <RemoveExistingProducts After="InstallInitialize" />
        </InstallExecuteSequence>
    

    最佳答案

    您需要使用 新品 2.x 的 GUID,如果您不希望它“知道” 1.x(即忽略它,不在乎等)

    我使用以下代码,只更改 var.Property_UpgradeCode当我想要一个新版本忽略以前安装的版本时(例如,在不同的文件夹中并排存在)

    <Product Id="*"
             UpgradeCode="$(var.Property_UpgradeCode)"
             Name="!(loc.ApplicationName)"
             Language="!(loc.Property_ProductLanguage)"
             Version="$(var.version)"
             Manufacturer="!(loc.ManufacturerName)" >
    
    <MajorUpgrade AllowSameVersionUpgrades="yes"
              DowngradeErrorMessage="!(loc.LaunchCondition_LaterVersion)"
              MigrateFeatures="no"
              Schedule="afterInstallInitialize" />
    

    关于Wix:如何限制对主要版本号的主要升级?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7334796/

    相关文章:

    .net - 如何使用 WixToolset v3.11 修改 json

    Wix:将模块与多个 wxs 文件合并

    php - MySQL 上的 LIMIT 关键字与准备好的语句

    linux - 如何修复 Linux 项目中的共享库 (.so) 之一?

    wix - 如何在WIX bundle 中使用自定义操作?

    wix - 为什么我的许可证不显示?

    sql - 按类型限制 SQL 结果(列值)

    mysql - SQL查询-基于子查询的限制

    php - 如何在大量数据中preg_replace_all

    r - 如何在 Linux Mint 中升级 R?