Здравствуйте, 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, но добиться его не могу.