Приложение, которое должно быть установлено двумя различными установщиками MSI - PullRequest
0 голосов
/ 09 мая 2018

У меня есть Приложение , которое должно быть установлено двумя различными установщиками MSI, INSTALLER1 и INSTALLER2 . Таким образом, это может быть достигнуто путем сохранения одинаковых GUID и PATH . Вариант использования 1. Приложение, установленное INSTALLER1 и через некоторое время удаленное с помощью INSTALLER2 , сообщит ли оно INSTALLER1, что оно было удалено? 2. Приложение, установленное INSTALLER1 и через некоторое время обновленное до INSTALLER2 , уведомит ли оно INSTALLER1? Или нужно проверить другие вещи, такие как код обновления, код пакета, идентификатор компонента должен быть таким же (в дополнение к GUID)

Любые указатели будут полезны

1 Ответ

0 голосов
/ 09 мая 2018

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

Вы используете термин «продукт» в замешательстве. В вашем другом посте вы ссылаетесь на модули слияния, это набор файлов, расположенных в компонентах. Ваш модуль слияния будет использован другим установочным пакетом. Для модуля слияния НЕТ кода обновления, нет ни кода пакета, ни кода продукта.

Если я понимаю ваш вопрос, если вы правильно настроили свои компоненты в модуле слияния, то правила для компонентов вступят в силу независимо от того, сколько продуктов устанавливает ваше приложение. Нет необходимости в «уведомлении».

Итак, допустим, вы создали свой модуль слияния, а файлы были установлены в C: \ Program Files \ MyGreatApp. MSI_1 и MSI_2 используют ваш модуль слияния 1.0.0. Клиент устанавливает MSI_2, в это время информация о вашем компоненте записывается в реестр и указывает, что компонент MyGreatApp версии 1.0.0. Позже клиент устанавливает MSI_1, в это время при установке он замечает, что компонент MyGreatApp уже установлен и имеет версию 1.0.0, в данный момент он не будет установлен, поскольку он уже существует в системе. Допустим, вы выпускаете MyGreatApp v2.0.0, а MSI_2 использует этот модуль слияния. Если клиент устанавливает MSI_1, то устанавливается MyGreatApp v1.0.0 Если клиент позже устанавливает MSI_2, то при установке он видит, что компонент установлен, но версия 1.0.0, поэтому в соответствии с правилами компонента он имеет более новую версию.

Итак, из-за проблем с установщиком, это должно соответствовать правилам компонентов.

Вопрос, который вы должны задать, заключается в том, что при обновлении приложения с версии 1.0.0 до версии 2.0.0 это приведет к разрыву кода. Если ваши файлы скомпилированы отдельно от основного MSI, вы должны быть полностью настроены, однако, если ваши файлы используются в качестве ссылок в основном приложении, и это сборка .NET, использующая файл ключа строгого имени, вы получите зависимость не найдена ошибки.

...