Как вы условно удаляете файлы при удалении?
У меня есть этот фрагмент WiX:
<Component Id="AppData" Guid="{30967EFB-4B86-4EBB-8486-5271D051082E}">
<Condition>NOT KEEPAPPDATA</Condition>
<RemoveFile Id="PurgeAppData" Name="*.*" On="uninstall" />
<RemoveFolder Id="RemoveAppDataFolder" On="uninstall" />
</Component>
в соответствующем <Directory>
элемент для каталога под данными приложения, в котором хранятся данные программы. Однако оба
msiexec /xpath-to-msi.msi KEEPAPPDATA="TRUE"
а также
msiexec /xpath-to-msi.msi
удалите папку, чтобы условие не работало. Я также пробовал это условие:
<Condition>KEEPAPPDATA == ""</Condition>
с такими же результатами.
Как правильно передать параметр в msiexec для изменения поведения во время удаления? Кажется, что параметры просто игнорируются.
1 ответ
По умолчанию условия компонента не оцениваются при удалении. Вот похожий вопрос Stackru с ответом Роба Меншинга. Он предлагает использовать переходный атрибут. Из документации:
Если для этого атрибута установлено значение "да", то при переустановке установщик переоценивает значение оператора в условии. Если значение ранее было False и было изменено на True, установщик устанавливает компонент. Если значение ранее было Истинным и было изменено на Ложное, установщик удаляет компонент, даже если у компонента есть другие продукты в качестве клиентов.