Re[2]: [InstallShield] Удаление файлов
От: Куть  
Дата: 27.02.10 11:48
Оценка:
Здравствуйте, i1yich, Вы писали:

I>Здравствуйте, Куть, Вы писали:


К>>Есть две версии дистрибутива, 1 и 2.

К>>В 1-й версии есть компонент X, во 2-м его нету — решено удалить из дистрибутива.
К>>Если удалить 1-ю версию, затем поставить 2-ю, то все ок.
К>>Если запустить инсталлятор 2-й версии при установленной 1-й, то компонент X (1 файл и 2 линка) не удаляется.
К>>Подскажите пожалуйста, как решить проблему, кто сталкивался с таким.

I>Если удаляешь компонент, то нужно менять у новой версии Product GUID. Об этом написано в документации по WIX, но думаю это справедливо для любых MSI-установщиков.


Спасибо! Добрался опять до этой проблемы. Изменил Product GUID, устанавливается 2 экземпляра разных версий, причем в одну и ту же папку. Не совсем понимаю, как это работает. Чтобы удалить программу, удалять приходится обе версии — это не то, что я хотел.

Есть ещё Upgrade GUID, я изменил его, но старый компонент при апгрейде не удалился.

Вопросы:
1. Как удаляется при апгрейде старая версия программы, если нет msi файла старой версии? Откуда новый дистрибутив знает о компонентах, которые были в предыдущей версии? (не features, а именно components, из которых и состоят features).
2. Как при апгрейде сделать так, чтобы старая версия удалилась до установки новой? В доках написано, что для этого нужен major upgrade, но добиться его не могу.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.