Я нашел другой пост, который, я думаю, тоже ваш пост.
Может ли один компонент устанавливаться двумя разными установщиками, если мы сохраняем одинаковые 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, использующая файл ключа строгого имени, вы получите зависимость не найдена ошибки.