У меня есть программа, которая устанавливает с установщиком 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 файлы также удалены. Я предполагаю, потому что обновление выполняет удаление на предыдущей версии.
Я приближаюсь к этой проблеме правильно? Как я могу сохранить файлы на обновлении при удалении их на удалении?
Вы пробовали добавить условие в RemoveExistingProducts? Я бы так и поступил.
<RemoveExistingProducts After='InstallInitialize'>(NOT UPGRADINGPRODUCTCODE) AND (Installed)</RemoveExistingProducts>
Одним из вариантов было бы переключение на незначительное обновление. Это имеет много ограничений, поэтому это не так просто, как кажется.