Определение более новой версии исполняемого файла в Wix - PullRequest
2 голосов
/ 24 мая 2011

У нас есть программное обеспечение с несколькими исполняемыми файлами внутри.Одним из исполняемых файлов является служба Windows, и она не меняется так часто, обычно мы выпускаем много обновлений для основного исполняемого файла, но версия службы остается той же самой внутри установщика.в более новой версии нам нужно запустить пользовательское действие.Нам удалось решить первую часть установки, но мы не знаем, как определить, что устанавливаемая нами версия является более новой, чем та, которая уже существует.Вроде если (newver> oldver) запустить пользовательское действие.

Заранее спасибо - Джек

Ответы [ 2 ]

3 голосов
/ 24 мая 2011

Вы можете попробовать использовать правила обновления вашего пакета.Подробнее здесь: Как реализовать обновление установщика WiX?

Роб Меншинг (второй ответ в связанной ветке) показывает пример правил обновления.Сначала вы должны ознакомиться с таблицей обновлений и , как работают правила обновления .В WiX нет простого ответа или быстрого решения этой проблемы.

По сути, у вас должно быть 2 правила обновления

  • . Первое устанавливает свойство при обнаружении более старой версии.
  • второй задает другое свойство при обнаружении более новой версии

После этого вы можете использовать свойство более старых версий, чтобы обусловить свое настраиваемое действие.Например, если свойство называется OLDERVERSIONFOUND, условием настраиваемого действия может быть:

OLDERVERSIONFOUND 

или что-то вроде

OLDERVERSIONFOUND > "1.0.0"
2 голосов
/ 25 мая 2011

Лучше всего, чтобы хранить «служебную» версию где-то в реестре, искать это значение реестра во время обновления и запускать свой CA, если newver> oldver (и CA также должен обновить указанное значение реестра до newver)

Обратите внимание, что Пользовательские действия (как правило) - это признание ошибки . Я всегда стараюсь отделить конфигурационную часть установки до этапа предварительной установки (для сисадминов, выполняющих развертывание) или этапа после установки (для интерактивных установок) - часто это отдельный исполняемый файл.

Декларативные установки без пользовательских действий намного более надежны - если вы сможете выяснить, как переписать службу, чтобы ваши настраиваемые действия больше не требовались, вам будет намного лучше в долгосрочной перспективе термин (это не помогает, когда вы находитесь под давлением, чтобы выпустить сейчас, но это о чем подумать для будущих выпусков)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...