Установщик WiX удаляет файлы при удалении, но не обновляется

У меня есть программа, которая устанавливается с помощью установщика 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 также удаляются. Я думаю, потому что обновление выполняет удаление в предыдущей версии.

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

Ответ 2

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

<RemoveExistingProducts After='InstallInitialize'>(NOT UPGRADINGPRODUCTCODE) AND (Installed)</RemoveExistingProducts>

Ответ 3

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