Как Вы выполняете пользовательское действие в WiX, только если установленная функция удаляется?

У меня есть установщик WiX, который имеет пользовательские действия на функцию, которые должны быть выполнены на удалении. Прямо сейчас я сталкиваюсь с проблемой, где действия выполняются, была ли функция на самом деле установлена пользователем. Пользовательские действия перестали работать, потому что они ожидают, что определенные ресурсы будут существовать, и затем вся установка застревает в нарушенном состоянии.

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

<Custom Action="LaunchUninstallCustomAction" Before="RemoveFiles"><![CDATA[(NOT UPGRADINGPRODUCTCODE) AND (REMOVE="ALL") AND (&FeatureName<=2)]]></Custom>
7
задан dskiles 2 February 2010 в 18:58
поделиться

2 ответа

Попробуйте

<Custom Action="LaunchUninstallCustomAction" Before="RemoveFiles">
   <![CDATA[(NOT UPGRADINGPRODUCTCODE) 
             AND (&FeatureName=2) AND (!FeatureName=3)]]>
</Custom>

См. MSDN для подробностей синтаксиса условий и примеров

16
ответ дан 6 December 2019 в 19:36
поделиться

Похоже, пользовательские действия не работают и неправильно обрабатывают недостающие ресурсы.

Как ЦС справится с этим, если пользователь вручную удалит файлы? Что произойдет, если пользователь удалит папку приложения, а затем попытается удалить ее через ARP?

Что произойдет, если пользователь просто удалит компонент, не удаляя все приложение? Вам будет лучше, если вы почините CA на длительный срок.

-3
ответ дан 6 December 2019 в 19:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: