Мне интересно, возможно ли вручную запустить элемент RemoveFolderEx из пользовательского действия? Я думаю, что скорее всего нет, но кто-то может знать способ, о котором я не знаю.
Моя проблема в том, что я хочу запустить элемент RemoveFolderEx, но только при истинном UNINSTALL, однако моя программа выполняет его при обновлении, поскольку я настроил ее на удаление перед переустановкой.
Я попробовал сделать это следующим образом Wix: условие на свойстве не работает , однако это не сработало и все равно запустилось при переустановке.
Единственное, о чем я могу подумать, это возможность вручную установить RemoveFolderEx из пользовательского действия, которое я знаю, что запускаю в нужный момент и только при истинном удалении. Возможно, мое пользовательское действие могло бы использовать c++ dll, а затем вручную добавить команду в интерфейс MSI, но если я пойду так далеко, то, возможно, будет лучше полностью написать логику удаления самостоятельно.
Спасибо. Нил
EDIT: Я наконец-то заставил это работать, вот пример wix, чтобы показать, что я сделал.
(NOT UPGRADINGPRODUCTCODE) AND (REMOVE="ALL")
Свойство P.REMOVEDATAFOLDER only устанавливается при истинной деинсталляции сразу после чтения DATADIR из реестра, но до действия CostInitialize.