MSI, сгенерированный WIX, не копирует исполняемый файл, копирует другие файлы, работал раньше - PullRequest
3 голосов
/ 15 марта 2012

Я работал с Pandion (клиент XMPP с открытым исходным кодом), который поставляется со скриптами wix для генерации установщиков.

Пока что выпуск патча сработал: я запустил включенный пакетный файл, который запустил двоичные файлы wix и создал msi.

Однако при последнем обновлении программа установки больше не копирует исполняемый файл (Pandion.exe) в каталог установки. Все остальные 400+ файлов скопированы правильно.

РЕДАКТИРОВАТЬ: под обновлением я имею в виду сделанные мной изменения, которые ограничены несколькими файлами javascript. Все файлы wix остаются без изменений.

Я пытался выяснить, в чем проблема, но я просто не очень разбираюсь в wix / msi и не знаю, где искать.

У меня включено подробное ведение журнала, что подтверждает копирование всех файлов, кроме исполняемого. Сгенерированный автоматически файл component.wxs содержит исполняемый файл в качестве компонента. Сначала программа установки регистрирует все компоненты, включая исполняемый файл, но когда он начинает копировать файлы, он просто молча пропускает его и переходит к следующему.

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

Если я удалю все и переустановлю с первого установщика, все предыдущие исправления будут работать нормально.

1 Ответ

7 голосов
/ 15 марта 2012

Проверьте и убедитесь, что версия этого конкретного файла (Pandion.exe) больше, чем в предыдущей установке. Если по какой-либо причине файл имеет меньшую версию, он может не быть установлен, потому что:

  • Во время установки обновления WiX проверяет версию .dll и .exes
  • Если версия установленного файла (Pandion.exe) больше, чем версия, которая должна быть установлена, то отмечается, что на компьютере существует более новая версия
  • При удалении предыдущей версии удаляются все файлы.
  • Во время установки обновления Pandion.exe не устанавливается, поскольку он был помечен
  • Во время переустановки / восстановления он видит, что Pandion.exe отсутствует, и устанавливает его.
...