Невозможно удалить связанные программы при удалении родительской программы

Актуальная проблема: впервые, когда мы устанавливаем продукты, мы видим 3 программы на панели управления, 1 мастер (A) и 2 цепочки (B,C). Допустим, теперь мы обновляем B до новой версии. Это обновление версии назначило новый код продукта для B. Но новый код продукта не обновляется в основной записи (A), что нарушает иерархию цепочек пакетов. Поскольку master(A) не имеет нового ProductCode в своей таблице IsChainedPackage, он не может удалить C & B при удалении A.

Я пытаюсь получить значение из реестра и назначить его одному из столбцов в таблице "IsChainPackage" MSI.

Я обнаружил, что могу создавать настраиваемые действия и присваивать значение публичному свойству. Но я не могу найти, как использовать это свойство в столбце ProductCode таблицы IsChainPackage. Я ищу решение, в котором я могу обновить поле ProductCode в строке Media->Releases->Pckg1/Pckg2 со значением, которое присутствует в реестре. Является ли это возможным?

Кроме того, можно ли удалить другой продукт (скажем, B) с помощью ProductCode, когда начнется удаление продукта (скажем, A)? Я имею в виду, когда мы нажимаем удалить A, сначала я хочу удалить B, а затем A. Могу ли я сделать это с помощью какого-либо специального действия? Если да, какие настройки мне нужно сделать в этом настраиваемом действии?

1 ответ

Вы используете установщик Suite для установки всех трех продуктов или InstallScript?

В любом случае, вы можете написать пользовательское действие для запуска деинсталлятора, используя msiexec.exe. У Stein Åsmul есть отличная ссылка для удаления в этом посте:

Stein Åsmul в глубине удалить ссылку

Другие вопросы по тегам