Tôi có một ứng dụng có nhiều tệp chứa thông số cấu hình và dữ liệu khác thay đổi khi người dùng sử dụng ứng dụng. Những tệp này có thể thay đổi với các phiên bản mới hơn của phần mềm của tôi, nhưng người dùng cũng có thể sửa đổi chúng (hoặc chúng có thể được thay đổi bởi chính ứng dụng). Về cơ bản, tôi đang tìm một giải pháp để ngăn chặn những thay đổi của người dùng đối với những tệp này bị ghi đè nhưng cũng là một cách để cài đặt các tệp được cập nhật tiềm năng khi người dùng nâng cấp phần mềm của tôi.Quản lý tập tin cấu hình với WiX
Với RPM trên * NIX bạn có thể sử dụng hàm% config để xác định tệp dưới dạng tệp cấu hình và RPM sau đó đổi tên tệp hiện có (nếu có) và cài đặt tệp mới trên bản nâng cấp (có thể không lý tưởng, nhưng tôi có thể sống với một cái gì đó như thế này cho WiX).
Tôi muốn cài đặt tệp cấu hình của mình vào thư mục con hoặc thậm chí một tên khác (ví dụ: default.cfg) và sau đó sử dụng phần tử <CopyFile>
trong WiX để sao chép tệp vào vị trí chính xác của chúng. Bằng cách này, các tệp mặc định sẽ bị xóa khi cài đặt và ghi đè lên bản nâng cấp, nhưng các tệp người dùng thực tế sẽ giữ nguyên. Thật không may với <CopyFile>
, Windows Installer vẫn muốn quản lý (và loại bỏ) tệp đích.
Tôi cũng đã xem xét sử dụng hành động QtExec trong WixUtilExtension để cơ bản làm "sao chép default.cfg reallocation.cfg" nhưng điều này sẽ không hoàn toàn hoạt động và nó là một chút của một hack.
Cách chính xác để xử lý điều này là gì?