InstallShield проверяет существующие приложения

У меня есть две разные версии (базовая и профессиональная) моего приложения. Я создал два разных проекта установки для обеих версий. Я хочу ограничить пользователя установкой только одной версии для каждой системы. Если у пользователя есть базовая версия, и он пытается установить профессиональную версию, я должен удалить базовую версию.

Может ли кто-нибудь сказать мне, как я могу проверить запись реестра для моей базовой версии и удалить, если пользователь попытается установить профессиональную версию? Я также должен сделать наоборот.

Я использую InstallShield 2011, и мой тип проекта — BASIC MSI.

Ранняя помощь приветствуется..

Спасибо, Винай


person Vinay MS    schedule 03.11.2011    source источник


Ответы (1)


Подход, который я бы рассмотрел, заключается в использовании основных обновлений. Затем вы можете выбрать, использовать ли один и тот же код обновления для обоих выпусков или использовать два разных кода и иметь записи об обновлении для другого выпуска (в дополнение к своему собственному).

Если вы хотите разрешить переход на более раннюю версию, но запретить переход на одну и ту же версию, используйте два разных кода обновления. Если вы хотите запретить переход на более раннюю версию, кросс-выпуск или что-то еще, любой вариант будет работать (я бы предложил разные коды для ясности, но это не критично).

person Michael Urman    schedule 03.11.2011
comment
Вы имеете в виду, что для каждой сборки я должен изменить код обновления для обеих версий.? Как справиться с даунгрейдом.? не могли бы вы объяснить мне немного больше - person Vinay MS; 03.11.2011
comment
См. kb.flexerasoftware.com/doc/Helpnet/installshield14helplib/ для информация, предотвращающая понижение рейтинга; эта стратегия одинаково хорошо применима как для вашего UpgradeCode, так и для чьего-то еще. Для более ранних версий вы можете выбрать, хотите ли вы также заблокировать или автоматически удалить и заменить существующий пакет. - person Michael Urman; 04.11.2011
comment
И нет, я не имею в виду, что каждая сборка должна использовать другой UpgradeCode. Просто у каждого выпуска, вероятно, должен быть свой собственный код, чтобы вы могли решить, как обрабатывать различные сценарии между выпусками, без предварительного определения списка ProductCodes. - person Michael Urman; 04.11.2011
comment
Спасибо, Майкл.. Это работает хорошо.. У меня есть два разных ярлыка для обеих версий, после перезаписи значки не удаляются.. Есть ли что-то, что я должен сделать, чтобы удалить ярлыки на рабочем столе и ярлык меню «Пуск».? - person Vinay MS; 04.11.2011