У меня есть приложение с несколькими файлами, содержащими параметры конфигурации и другие данные, которые меняются по мере того, как пользователь использует приложение. Эти файлы могут меняться в более новых версиях моего программного обеспечения, но пользователь также может их изменять (или они могут быть изменены самим приложением). По сути, я ищу решение, позволяющее предотвратить перезапись пользовательских изменений в этих файлах, а также способ установить потенциально обновленные файлы, когда пользователь обновляет мое программное обеспечение.
С RPM на *NIX вы можете использовать функцию %config, чтобы определить файл как файл конфигурации, а затем RPM переименует существующий файл (если он существует) и установит новый при обновлении (возможно, не идеально, но я мог бы жить с чем-то вроде этого для WiX).
Я хотел бы установить свои файлы конфигурации в подкаталог или даже под другим именем (например, default.cfg), а затем использовать элемент <CopyFile>
в WiX, чтобы скопировать файлы в правильные места. Таким образом, файлы по умолчанию будут удалены при установке и перезаписаны при обновлении, но фактические пользовательские файлы останутся прежними. К сожалению, с <CopyFile>
установщик Windows по-прежнему хочет управлять (и удалять) целевым файлом.
Я также рассматривал возможность использования действия QtExec в WixUtilExtension, чтобы в основном сделать «копировать default.cfg reallocation.cfg», но это не совсем сработает, и это немного хак.
Каков правильный способ справиться с этим?