#wix #installation #upgrade
#викс #установка #Обновление #wix
Вопрос:
У меня есть приложение для начальной загрузки wix, которое устанавливает в систему различные компоненты. Теперь я внес изменения в установщик таким образом, что файлы, которые были установлены последним компонентом в моем старом установщике, теперь устанавливаются первым компонентом в моем новом установщике. Это приводит меня к проблеме обновления. При обновлении файлы, которые должен копировать новый установщик, не копируются, поскольку более старая установка уже установила эти файлы. Но когда новый установщик переходит к последнему компоненту, этот компонент удаляется, поскольку это обновление, которое также удаляет файлы, и поскольку при новой установке последний компонент не копирует эти файлы, я заканчиваю тем, что эти файлы отсутствуют в процессе обновления. Как это можно решить? Заранее спасибо за помощь. Дайте мне знать, если я должен прояснить вопрос.
РЕДАКТИРОВАТЬ: для объяснения на примере
Более старый установщик
Application
Module 1
Module 2
Module 3
Copies files 1,2,3
Более новый установщик
Application
Module 1
Copies files 1,2,3
Module 2
Module 3
Теперь в сценарии обновления, когда более старая программа установки уже установлена, файлы 1, 2, 3 уже присутствуют в системе. Теперь, когда я пытаюсь установить более новый установщик, то во время установки модуля 1 он видит, что файлы 1,2,3 уже присутствуют. Затем, когда он достигает установки модуля 3, он сначала удаляет существующий модуль 3 (более старый установщик), который, в свою очередь, удаляет файлы 1,2,3. Модуль 3 новой программы установки не копирует эти файлы, поскольку в новой программе установки это задание модуля 1. Из-за этого я в конечном итоге теряю файлы 1,2,3 как часть обновления.
Комментарии:
1. Можете ли вы опубликовать содержимое xml или хотя бы фрагмент? Возможно, вам просто нужно изменить порядок вещей.
2. @RobinJohnson Спасибо за комментарий, Робин, но файлы, которые я хочу скопировать, в основном представляют собой ComponentGroupRef к тепловому файлу wxs, который содержит всю информацию о копируемых файлах. В любом случае, я решил свою проблему, продублировав ссылку на ComponentGroup во всех модулях. Это приводит к тому, что при удалении модуля 3 старого установщика он удаляет эти файлы, а при установке модуля 3 нового установщика он снова добавляет эти файлы, поскольку у него есть ссылка на ComponentGroup .
3. Хорошо. Совершенно разумное решение.