WiX EmbeddedChainer не может удалить - PullRequest
3 голосов
/ 18 апреля 2011

Кто-то задал очень похожий вопрос, но ответ был бесполезным. Было бы чрезвычайно ценно, если бы был знающий ответ ...

Я создал проект WiX с использованием Windows Installed 4.5. Я включил ссылку на элемент EmbeddedChainer в файл wxs для таблицы MsiEmbeddedChainer, которая позволяет устанавливать несколько пакетов.

<EmbeddedChainer Id="Chainer" FileSource="InstallMSI.exe" />

Я осмотрел сеть и, наконец, нашел один пост, в котором показано, как этот человек получил дескриптор для внутренней транзакции. Теперь мой установщик правильно вызывает мой исполняемый файл для обработки связанных MSI. Однако удаление не работает. Обратите внимание, что без вышеуказанного элемента EmbeddedChainer деинсталляция работает нормально.

Я прочитал все доступные документы и не могу найти ни одного примера проекта.

Может ли кто-нибудь дать руководство по созданию установочного пакета для нескольких MSI на основе WiX?

Ответы [ 2 ]

1 голос
/ 26 августа 2011

Тот же встроенный исполняемый файл цепочки Main () будет вызван снова при удалении.Чтобы код цепочки определил, устанавливать или удалять, родительский установщик должен передать аргумент главной функции цепочки.При удалении родительский установщик имеет свойство [REMOVE], для которого установлено значение «REMOVE = ALL» или «REMOVE = feature1, feature2».Установите для EmbededChainer / @ CommandLine значение «REMOVE = [REMOVE]» и в главной части кода цепочки разберите список аргументов и передайте данные в MsiInstallProduct () в качестве аргумента.Когда MsiInstallProduct () увидит аргумент «REMOVE = ALL», дочерний MSI выполнит удаление.

1 голос
/ 19 апреля 2011

Документация WiX для EmbeddedChainer относится к документации MSDN для MsiEmbeddedChainer Table , которая, в свою очередь, указывает на Мониторинг установки с использованием MsiSetExternalUI

Вместо того, чтобы искать конкретный пример WiX, я предлагаю поискать любой пример MSI.Оттуда будет довольно легко выяснить, в чем проблема с WiX.

...