Я создал установку для своего продукта, ориентированную на Windows XP и более поздние версии, которая будет установлена с помощью установщика Windows (WI).Полученный MSI-файл содержит код продукта, скажем, PC1 (на самом деле guid) и код обновления UC1 (также guid).Через некоторое время я создал новую настройку для более новой версии моего продукта.Новый MSI-файл содержит новый код продукта PC2 и тот же код обновления UC1 (также называемый крупным обновлением).Моя компания хочет установить MSI-файл с помощью нашего собственного установщика.Для этого мы в основном используем MsiInstallProduct для установки MSI-файла, тогда как весь пользовательский интерфейс находится в нашей собственной программе установки (и мы используем MsiSetExternalUI, чтобы запросить WI для отправки нам уведомлений).Проблема, с которой я столкнулся, заключается в следующем:
, если две сборки продукта установлены на одном компьютере с использованием «msiexec / i myapp.msi», тогда будет только одинзапись в «Установка и удаление программ» панели управления «Программы и компоненты».или, другими словами, во время установки новой сборки старая удаляется.
, если две сборки установлены на одном компьютере программным способом с использованием MsiInstallProduct, будет два разныхЗаписи в панели управления.
Еще раз, только если я попытаюсь установить его программно (используя MsiOpenPackage + MsiDoAction или MsiInstallProduct), обновление не произойдет, и я получу две записи на панели управления.Я также обнаружил, что если я не установлю обратный вызов внешнего пользовательского интерфейса с помощью MsiSetExternalUI, перед вызовом MsiInstallProduct или MsiDoAction, то обновляющая часть новой установки также будет работать, как ожидается, без дублирующихся записей в CP.
Обратный вызов, который я использую для MsiSetExternalUI, в основном такой же, как и в этой статье MSDN: http://msdn.microsoft.com/en-us/library/windows/desktop/aa368786(v=vs.85).aspx
Что я могу сделать (или что мне нужно обработать в моемобратный вызов), чтобы избежать дублирования / нескольких записей в панели управления?
Спасибо и всего наилучшего,
Левенте