Установщик Windows удаляет файл с версией во время обновления продукта, вместо того, чтобы понижать его

Мы используем wix для создания наших настроек. Для обновления мы используем основные обновления, как показано в , этот ответ Роб Меншинг . (В более новых версиях wix вы можете использовать элемент MajorUpgrade .) Обычно это работает хорошо. Старый продукт удаляется, затем устанавливается новый.

Однако очевидно, что описанное выше не полностью эквивалентно ручному удалению старого продукта и последующей установке нового продукта вручную.

Рассмотрим, например, следующий сценарий:

  • выпущена версия 1.0 нашего продукта, содержащая версию 5.0 сторонней dll
  • Выпущена версия 1.1 нашего продукта, содержащая версию 5.1 той же сторонней dll
  • , версия 1.2 нашего продукта выпущена, возврат к версии 5.0 сторонней dll снова, потому что мы обнаружили, что новая версия привела к большему количеству проблем, чем решила.

Очевидно, с логикой обновления wix, указанной выше, сторонняя dll исчезнет при обновлении с релиза 1.1 по 1.2. Для его восстановления необходим ремонт.

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

29
задан Community 23 May 2017 в 12:02
поделиться