Может ли загрузчик WiX откатывать основные обновления так, как ожидает конечный пользователь?

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

Когда откат необходим во время операции обновления в середине цепочки пакета, ранее выполненные основные обновления отменяются, в результате чего затронутые продукты больше не устанавливаются.

Это кажется разумным, но, вероятно, это не то, что ожидает конечный пользователь. Вместо того, чтобы некоторые продукты оставались удаленными, в идеале эти продукты следует вернуть к их ранее установленным версиям.

Интересно, есть ли способ решить это требование, не отказываясь от основной стратегии обновления. Может ли загрузчик WiX откатывать основные обновления так, как ожидает конечный пользователь?


person CodeFox    schedule 18.08.2014    source источник
comment
В качестве обходного пути для конечного пользователя я успешно протестировал восстановление пакета и восстановление системы.   -  person CodeFox    schedule 18.08.2014
comment
Откат MSI должен восстановить предыдущую версию, если RemoveExistingProducts находится внутри транзакции, InstallInitialize для InstallFinalize, REP откатится и восстановит исходный продукт. WiX — помогает ли RollbackBoundary?   -  person PhilDW    schedule 19.08.2014
comment
@PhilDW, вы правы - RemoveExistingProducts было запланировано после InstallValidate и InstallInitialize. После изменения этого параметра откат для устанавливаемого в данный момент пакета работает должным образом. Спасибо за эту подсказку! К сожалению, ранее обновленные пакеты по-прежнему удаляются. Согласно документации RollbackBoundary, этот элемент не поможет в восстановлении предыдущего состояния всех пакетов. :-(   -  person CodeFox    schedule 19.08.2014
comment
Если возможно частичное обновление пакета, рассмотрите возможность Chain/@DisableRollback=yes< /а>.   -  person Tom Blodget    schedule 09.11.2014
comment
У меня такая же проблема, может кто-нибудь уточнить это в ответе?   -  person Peter van Kekem    schedule 23.08.2017


Ответы (1)


У меня был тот же вопрос, и я открыл тикет в службу поддержки FireGiant. Их ответ был:

К сожалению, Берн не делает этого сегодня. Пакеты содержат только «свои» пакеты, а не старые. И версия пакета N может обновить версию N-1 или N-10, поэтому восстановить один пакет будет невозможно. Вместо этого сейчас лучше всего предложить пользователю выполнить восстановление уже установленного пакета. Есть открытый запрос функции, чтобы иметь возможность указать Burn делать это автоматически, но она не реализована.

person Jeff Paquette    schedule 18.02.2019
comment
Джефф, спасибо, что поделились этим официальным объяснением. - person CodeFox; 19.02.2019