2015-06-30 2 views
1

Как я сказал в заголовке, вопрос в том, как Wix решит установить конкретный файл?Как Wix решит установить конкретный файл?

У меня есть файл exe, и когда я что-то меняю в exe-файле и перестраиваю, он не будет переустановлен, если я не изменю версию. Но если я что-то изменил в файле ресурсов, файл ресурсов будет заменен, даже если я не изменю версию своего приложения. Итак, как wix решает, нужно ли ему заменять файл во время обновления или нет.

Я использую wix3.9. MajorUpgrade - это график afterInstallFinalize.

ответ

1

Версии файлов заменяются на основе версии файла, да, но файлы данных заменяются на основе того, был ли указан хэш файла или нет. Я думаю, что WiX генерирует hases файлов по умолчанию, так что это перезапись правило:

https://msdn.microsoft.com/en-us/library/aa370532(v=vs.85).aspx

и это правило установщика Windows, которая применяется ко всем MSI settup, не решение WiX.

P.S. afterInstallFinalize - не идеальное место. afterInstallExecute безопаснее, и он будет иметь одинаковый общий результат. Проблема заключается в том, что после InstallFinalize означает, что новый продукт установлен. Если при удалении старого продукта произойдет сбой и откатывается, у вас будут установлены как старые, так и новые продукты, иначе известные как беспорядок. afterInstallExecute делает все часть транзакции, поэтому вы устанавливаете оригинальный продукт, если есть отказ в его удалении.

+0

Спасибо. Я обязательно изменюсь, когда запланирована майора. Я не знал, что это может поднять этот вопрос. –

 Смежные вопросы

  • Нет связанных вопросов^_^