Как сделать так, чтобы WIX MSI всегда удалял предыдущую версию?

У меня есть система сборки CI, которая создает MSI всякий раз, когда разработчик регистрирует изменение. Мы запускаем автоматические приемочные тесты на установленном MSI.

По сути, каждый MSI представляет собой полную установку продукта, поэтому у нас нет версий (в стиле установщика Windows )как такового..

Каждый MSI имеет одинаковый GUID продукта и GUID обновления, а также один и тот же номер версии. но имеет другой GUID пакета (используйте «*» в wix ).

Чего я хочу добиться, так это того, что при запуске установщика он «удалит» любую ранее установленную версию продукта и установит новую.все из одного MSI (У нас есть запутанный процесс установки, который находится вне нашего контроля.. citrix и sccm, поэтому мы хотим предоставить им простой путь установки)

Я пробовал:

<Property Id='PREVIOUSVERSIONSINSTALLED' Secure='yes' />
<Upgrade Id='$UPGRADE_GUID'>  
  <UpgradeVersion Minimum='1.0.0.0'
                  Maximum='99.0.0.0'
                  Property='PREVIOUSVERSIONSINSTALLED'
                  IncludeMinimum='yes'
                  IncludeMaximum='no' />
</Upgrade>

и иметь:

<InstallExecuteSequence>
  <RemoveExistingProducts After='InstallFinalize' />
</InstallExecuteSequence>

и пытались:

<InstallExecuteSequence>
  <RemoveExistingProducts After='InstallInitialize' />
</InstallExecuteSequence>

Но когда я пытаюсь установить msi из следующей сборки, я получаю:

Another version of this product is already installed. Installation of this version cannot continue. 
To configure or remove the existing version of this product, use Add/Remove Programs on the Control Panel. 

Это не совсем то, к чему я стремился..

Я понимаю, что могу просто обновить атрибут «Версия» в теге продукта, но с этим становится сложно справиться. Во-первых, я могу создавать более 20 сборок msi в день, поскольку у меня есть несколько конвейеров сборки, которые производят MSI, и я не знаю, как обрабатывать нумерацию версий таким образом, чтобы это имело смысл.

Может быть, установщик Windows просто не позволяет устанавливать этот тип «всегда перезаписывать установленную версию»?

19
задан BartoszKP 27 July 2017 в 09:39
поделиться