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

Chr*_* M. 7 wix upgrade limit

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

  • 主要版本1.xx行中的每个设置都应该主要更新1.xx行的任何先前版本.
  • 主要版本2.xx行中的每个设置都应该主要更新2.xx行的任何先前版本,但仅保留1.xx行.

我虽然可以使用以下代码使用它,但安装程序删除了以前的1.xx版本.我在忙什么?这甚至可能吗?

    <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>
Run Code Online (Sandbox Code Playgroud)

sas*_*ont 6

如果您不希望它"知道"1.x(即忽略它,不关心等),您需要为2.x 使用 GUID

我使用以下代码,仅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" />
Run Code Online (Sandbox Code Playgroud)