WIX Overwrite / Update Installer - PullRequest
       2

WIX Overwrite / Update Installer

1 голос
/ 23 марта 2012

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

Я рассмотрел вариант NeverOverwrite="yes", и это выглядит многообещающе, однако сейчас я сталкиваюсь с этой проблемой. Когда я пытаюсь перезапустить программу установки после завершения установки, я получаю эту ошибку.

enter image description here

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

Ответы [ 2 ]

2 голосов
/ 24 марта 2012

Как говорит BryanJ, ошибка указывает, что вы устанавливаете новый пакет, который имеет тот же код продукта, что и ранее установленный пакет.

Решение, скорее всего, просто установит атрибут продукта Id на *. Стабильные идентификаторы продукта нужны только тогда, когда вы хотите иметь возможность незначительных обновлений .

Незначительное обновление не допускает никакой реорганизации дерева компонентов, а AFAIK имеет преимущество только в том, что он быстрее для больших установок. Мы просто делаем все обновления как крупные обновления , которыми проще управлять.

2 голосов
/ 24 марта 2012

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

Причина, по которой вы получаете ошибку, заключается в том, что идентификатор продукта и номера версий совпадают, но коды пакетов отличаются.Чтобы устранить ошибку, у вас есть следующие варианты:

  • Обновите номер версии и рассматривайте его как обновление.
  • Измените идентификатор продукта (и версию) и относитесь к нему как к обновлению.
  • Идентификатор продукта и версия могут совпадать, если вы установите код пакета, однако это не очень рекомендуется, особенно если вы изменяете файлы в программе установки.Если вы установите код пакета в соответствии с предыдущим установщиком, вы получите диалоговое окно обслуживания, и если вы выполните восстановление или изменение, я не уверен, будет ли он использовать кэшированный MSI или перекомпилированный MSI при выполнении восстановления, поэтомуЯ не уверен, какие результаты вы можете ожидать.
...