Downgrade удаляет новые версии исполняемых файлов, но не переустанавливает старые версии - PullRequest
0 голосов
/ 08 октября 2019

У меня есть две версии моего установщика приложения. Версия 1.0.0.0 и версия 1.0.1.0. На этапе предварительной сборки исполняемые файлы приложения добавляются в выбранную версию.

Чтобы разрешить понижение версии, для атрибута AllowDowngrades в MajorUpgrade установлено значение 'yes'.

После установки 1.0.0.0 я обновляюсьустановка с помощью установщика 1.0.1.0. Исполняемые файлы должным образом обновлены. Затем я снова запускаю установщик 1.0.0.0, чтобы понизить версию установки до 1.0.0.0. Установка завершается, и исполняемые файлы версии 1.0.1.0 удаляются;Но исполняемые файлы с версией 1.0.0.0 не переустанавливаются. Они просто отсутствуют.

Я не понимаю, почему это происходит. Я мог бы понять, если установщик отказался перезаписывать новые исполняемые файлы, но почему удаляются более новые исполняемые файлы? Есть ли что-то еще, что я должен сделать, чтобы сделать возможным понижение рейтинга?

Начало моего Product.wxs:

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
     xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
  <!-- Including defines. -->
  <?include Defines.wxi ?>
  <Product Id="*"
        Name="$(var.ProductName) $(var.MajorMinorVersion)"
        Language="1033"
        Version="$(var.ProductVersion)"
        Manufacturer="$(var.Manufacturer)"
        UpgradeCode="$(var.UpgradeGuid)">

    <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />

    <MajorUpgrade Schedule="afterInstallInitialize" AllowDowngrades='yes' AllowSameVersionUpgrades='no' />
    ...

1 Ответ

0 голосов
/ 11 октября 2019

REINSTALLMODE пришлось изменить со значения по умолчанию omus на amus:

<Property Id="REINSTALLMODE" Value="amus" />

Из документации Microsoft:

o   Reinstall if the file is missing or is an older version.
a   Force all files to be reinstalled, regardless of checksum or version.

С этим изменением исполняемые файлы переустанавливаются при понижениив правильной версии.

...