[InstallShield] Удаление файлов
От: Куть  
Дата: 16.02.10 16:11
Оценка:
Добрый вечер, коллеги!
Есть две версии дистрибутива, 1 и 2.
В 1-й версии есть компонент X, во 2-м его нету — решено удалить из дистрибутива.
Если удалить 1-ю версию, затем поставить 2-ю, то все ок.
Если запустить инсталлятор 2-й версии при установленной 1-й, то компонент X (1 файл и 2 линка) не удаляется.
Подскажите пожалуйста, как решить проблему, кто сталкивался с таким.
installshield удаление файла
Re: [InstallShield] Удаление файлов
От: i1yich  
Дата: 19.02.10 20:47
Оценка:
Здравствуйте, Куть, Вы писали:

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

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

Если удаляешь компонент, то нужно менять у новой версии Product GUID. Об этом написано в документации по WIX, но думаю это справедливо для любых MSI-установщиков.
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, но добиться его не могу.
Re[3]: [InstallShield] Удаление файлов
От: bnk СССР http://unmanagedvisio.com/
Дата: 27.02.10 12:36
Оценка:
Здравствуйте, Куть, Вы писали:

К>2. Как при апгрейде сделать так, чтобы старая версия удалилась до установки новой? В доках написано, что для этого нужен major upgrade, но добиться его не могу.


Это, ты читал, "как делать обновление приложения" в Install Shield?
Открываешь в дереве ноду "Upgrades", нажимаешь F1, там все должно быть написано...
Т.е. тут гадать или изоретать не надо, то что ты хочешь — (major upgrade) — AFAIK является стандартной процедурой...
RTFM, в общем
Re[3]: Вкратце
От: bnk СССР http://unmanagedvisio.com/
Дата: 27.02.10 16:18
Оценка: 3 (1)
Можно действовать так:

1. Берем инсталлятор ("1.0"), копируем, получаем исходный сетап для версии ("2.0")

3. Добавляем-удаляем из него файлы, ярлыки, в общем что надо.

4. Меняем в нем проперти:
Product Version (="новая версия")
Product Code (="новый guid")
Package Code (="новый guid").
— Upgrade Code не трогаем!

4. Открываем ноду "Upgrades", добавляем "New -> Major Upgrade" (все поля — по умолчанию)

5. Компилируем и проверяем что все работает.

Вот здесь видео (!!!) по поводу — "How to create a Major Upgrade with InstallShield"
(про базу там не обращай внимания, это к делу не относится)

Re[4]: Вкратце
От: Куть  
Дата: 01.03.10 12:00
Оценка:
Спасибище! Такого я не ожидал
Буду пробовать!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.