Добрый вечер, коллеги!
Есть две версии дистрибутива, 1 и 2.
В 1-й версии есть компонент X, во 2-м его нету — решено удалить из дистрибутива.
Если удалить 1-ю версию, затем поставить 2-ю, то все ок.
Если запустить инсталлятор 2-й версии при установленной 1-й, то компонент X (1 файл и 2 линка) не удаляется.
Подскажите пожалуйста, как решить проблему, кто сталкивался с таким.
Здравствуйте, Куть, Вы писали:
К>Есть две версии дистрибутива, 1 и 2. К>В 1-й версии есть компонент X, во 2-м его нету — решено удалить из дистрибутива. К>Если удалить 1-ю версию, затем поставить 2-ю, то все ок. К>Если запустить инсталлятор 2-й версии при установленной 1-й, то компонент X (1 файл и 2 линка) не удаляется. К>Подскажите пожалуйста, как решить проблему, кто сталкивался с таким.
Если удаляешь компонент, то нужно менять у новой версии Product GUID. Об этом написано в документации по WIX, но думаю это справедливо для любых MSI-установщиков.
Здравствуйте, 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, но добиться его не могу.
Здравствуйте, Куть, Вы писали:
К>2. Как при апгрейде сделать так, чтобы старая версия удалилась до установки новой? В доках написано, что для этого нужен major upgrade, но добиться его не могу.
Это, ты читал, "как делать обновление приложения" в Install Shield?
Открываешь в дереве ноду "Upgrades", нажимаешь F1, там все должно быть написано...
Т.е. тут гадать или изоретать не надо, то что ты хочешь — (major upgrade) — AFAIK является стандартной процедурой...
RTFM, в общем