Боюсь, что MSI не слишком хорошо подходит для такого рода сценариев - как вы обнаружили.
- Это корпоративное программное обеспечение или оно предназначено для широкого распространения ?
- Какова цель этого подхода с несколькими инстанциями? Эффективно ли этот MSI устанавливает две разные версии одного и того же приложения?
Преобразования экземпляра : Полагаю, вы могли бы исследовать концепцию преобразования экземпляра . Он предназначен для нескольких установок, но мне не нравится эта концепция, и я никогда не использовал ее активно. Поэтому я не могу рассказать вам историю ограничений и ошибок - извините - может быть, кто-то еще может осветить?
Как заявляет PhilDW, вы можете использовать другой код обновления для новейшего MSI, а затем установить его параллельно со старой установкой. Помимо того, что уже было упомянуто, вам также необходимо изменить все GUID компонентов для нового пакета. WiX позволяет автоматически генерировать GUID компонентов на основе пути назначения, но не для Installshield. Необходимо использовать экземпляр преобразования для параллельной установки без изменения всех GUID компонентов - я полагаю.
App-V : Если вы работаете в корпоративной среде и у меня достаточно опыта, я бы также порекомендовал вам проверить упаковку App-V (виртуализация). Это позволяет изолировать приложения, чтобы несколько версий могли работать параллельно. Но опять же, я не тот парень, который может рассказать вам историю изнутри. Я знаю, что есть ряд ограничений, но не могу уточнить этот опыт.
Setup.exe Launcher : если ваше приложение изящно обрабатывает несколько экземпляров без конфликтных ярлыков, имени службы и т. Д. (Как описывает Фил), вы можете установить все новые версии и никогда не удаляйте старые версии по умолчанию через таблицу обновлений. Затем вы можете обработать удаление предыдущих версий вручную в вашем setup.exe
лаунчере (если есть). Я полагаю, что вы могли бы использовать концепцию преобразования экземпляра для установки новых версий или заново создать настройки для каждой новой версии со всеми новыми GUID компонентов и GUID продуктов, пакетов и обновлений.
Устаревший проект Installscript : Я полагаю, вы можете отказаться от MSI и использовать унаследованный проект Installscript для развертывания своего приложения. Я бы не рекомендовал это, поскольку такие проекты проблематичны для надежного удаленного управления и тихой работы (как для установки, так и для удаления).
Некоторые ссылки на ответственное хранение: