WiX: сохранить при значительном обновлении, удалить при удалении - PullRequest
1 голос
/ 25 августа 2011

Я определил компонент для очистки сгенерированного (не установленного) файла при удалении, но оставил без изменений при значительном обновлении после прочтения этого поста

<Component Id="C_RemoveOnUninstall" Guid="XXX">
  <RemoveFile Id="DeleteGeneratedFile" Name="ProgramGeneratedFile" On="uninstall"/>
  <Condition>REMOVE="ALL" AND NOT UPGRADINGPRODUCTCODE</Condition>
</Component>

При условии выше, файл оставлен для обоихобновить и удалить.Без условия файл удаляется как для обновления, так и для удаления.

Я пробовал RemoveFile для каждого из On = "install / uninstall / both", но, похоже, это не имеет значения.Прочитал этот пост , но я надеюсь, что условия для компонентов будут работать и избежать написания пользовательских действий для этого.

Этот код выглядит правильно?Любые решения или обход?

1 Ответ

0 голосов
/ 03 мая 2012

В этом подходе предполагается, что действие RemoveFiles игнорирует элемент в таблице RemoveFile , когда свойство, на которое ссылается DirProperty, имеет значение null.Свойство, на которое ссылаются DirProperty, будет установлено при удалении, но не при обновлении.

Условно установите свойство:

<SetProperty Id="prop_GeneratedFileDir" Value="[GeneratedFileDir]" After="InstallInitialize" Sequence="execute">
  REMOVE="ALL" AND NOT UPGRADINGPRODUCTCODE
</SetProperty>

Определите элемент для таблицы RemoveFile:

<Component Id="C_RemoveOnUninstall" Guid="XXX">
  <RemoveFile Id="DeleteGeneratedFile" Property="prop_GeneratedFileDir" Name="ProgramGeneratedFile" On="uninstall"/>
  <CreateFolder/>
</Component>

Некоторые полезные ссылки: пользователи wix , Таблица RemoveFile , Элемент RemoveFile , Элемент RemoveFolderEx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...