Установщик WiX удаляет файлы при удалении, но не при обновлении - PullRequest
11 голосов
/ 20 июля 2010

У меня есть программа, которая устанавливается вместе с установщиком WiX.

Программа сама создает несколько файлов в каталоге [CommonAppDataFolder] \ [MyAppName] \. Все эти файлы имеют одинаковое расширение (назовем его .dat).

При обновлении , я хочу сохранить этих файлов.
При удалении я хочу удалить этих файлов.

В настоящее время я удаляю файлы следующим образом:

<Directory Id='CommonAppDataFolder'>
  <Directory Id='MyCommonAppDataFolder' Name='MyAppName'>
    <Component Id='RemoveFilesComponent' Guid='71cb0cd8-8459-4a8f-89b7-f00977aa7b70'>
      <RemoveFile Id='RemoveFiles' Name='*.dat' On='uninstall'/>
    </Component>
  </Directory>
</Directory>

И у меня есть это для облегчения апгрейдов:

<InstallExecuteSequence>
  <RemoveExistingProducts After='InstallInitialize'/>
</InstallExecuteSequence>

Теперь при удалении файлы .dat удаляются корректно.
Однако при обновлении файлы .dat также удаляются. Я думаю, потому что обновление выполняет удаление на предыдущей версии.

Правильно ли я подхожу к этой проблеме? Как сохранить файлы при обновлении, удалив их при удалении?

Ответы [ 3 ]

4 голосов
/ 30 ноября 2010

Эта тема может ответить на ваш вопрос.

2 голосов
/ 21 июля 2010

Вы пытались добавить условие в RemoveExistingProducts?Это то, что я бы сделал.

<RemoveExistingProducts After='InstallInitialize'>(NOT UPGRADINGPRODUCTCODE) AND (Installed)</RemoveExistingProducts>
1 голос
/ 20 июля 2010

Один из вариантов - переключиться на незначительное обновление.Это имеет множество ограничений, так что это не так просто, как кажется.

...