Я пытаюсь удалить иерархию папок с помощью RemoveFolderEx, но только при удалении программного обеспечения.В настоящее время, когда я делаю переустановку, она также удаляет все папки, что удаляет весь созданный программой контент, что нежелательно.Возможно, это связано с тем, что я установил программное обеспечение для удаления перед повторной установкой
<InstallExecuteSequence>
<RemoveExistingProducts Before="InstallInitialize" />
</InstallExecuteSequence>
Возможно ли наложить условие на следующий элемент?Должен ли я обернуть его в свой собственный компонент, а затем добавить условие внутри?Пока я не смог заставить его работать.
<util:RemoveFolderEx On="uninstall" Property="MAINDIR" ></util:RemoveFolderEx>
Из другого вопроса я знаю, что условие должно быть
((NOT UPGRADINGPRODUCTCODE) AND (REMOVE="ALL"))
, но я не совсем на 100%о том, как применить это к элементу removefolder, если это вообще возможно.
Полагаю, я мог бы задать путь к папке, чтобы очистить его для настраиваемого действия, которое было подчинено условию, но это просто кажется хакерским.*
Ура.Нил
РЕДАКТИРОВАТЬ: я почти получил эту работу, поместив removefolderex в его собственный компонент.Без условия это работает как ожидалось и удаляет каталог данных при удалении и переустановке.Когда я добавляю условие, оно не запускается, но я надеюсь, что это связано с тем, что условие неверно.
<DirectoryRef Id="DATADIR">
<Component Id="C.RemoveDataFolder" Guid="myguid" KeyPath="yes">
<util:RemoveFolderEx On="uninstall" Property="DATADIR" ></util:RemoveFolderEx>
<Condition>(NOT UPGRADINGPRODUCTCODE) AND (REMOVE="ALL")</Condition>
</Component>
</DirectoryRef>
Кто-нибудь знает, нормально ли приведенное выше заявление или оно никогда не сработает?Могу ли я применить такое условие к компоненту?