Исправление WiX не обновляет файлы правильно

Мои тестовые патчи WiX в стиле "admin-image" не могут корректно обновить существующую установку. При использовании msiexec /lx я получаю следующую информацию, связанную с исправлением "fi_executable.exe":

MSI (s) (88:E0) [12:32:41:716]: Baseline: Patch {E244BAC8-7E62-4406-889B-4B67A4EA7369} modified fi_executable.exe with full-file update.
MSI (s) (88:E0) [12:32:41:716]: Baseline: First patch for fi_executable.exe, saving native info.
MSI (s) (88:E0) [12:32:41:716]: Baseline: fi_executable.exe version for baseline at patch Native: 6.0.5803.11, 1033, 53840.
...
MSI (s) (88:E0) [12:32:41:716]: Baseline: fi_executable.exe version for baseline at patch {E244BAC8-7E62-4406-889B-4B67A4EA7369}: 6.0.5830.99, 1033, 47104.
...
MSI (s) (88:E0) [12:32:41:763]: {E244BAC8-7E62-4406-889B-4B67A4EA7369} File: fi_executable.exe ValData: 6.0.5830.99 1033 47104
...
MSI (s) (88:E0) [12:32:41:763]: Native File: fi_executable.exe ValData: 6.0.5803.11 1033 53840
...
MSI (s) (88:E0) [12:32:42:543]: The file represented by File table key 'fi_executable.exe' has no eligible binary patches

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

Зачем?

2 ответа

Решение

Тестировали ли вы обновление с полными MSI-файлами, прежде чем пытаться использовать патч? Патчинг - это всего лишь механизм доставки обновлений, упакованных в более сжатой форме. Если полное обновление MSI не работает, патч также не подойдет.

Попробуйте установить патч с помощью этой командной строки:

msiexec /p patch.msp /qb REINSTALL=ALL REINSTALLMODE=omusa

Без этих дополнительных параметров мой патч не удалось установить правильно: он не обновлял файлы.

Другие вопросы по тегам