我有一個包含配置參數和其他數據隨用戶使用應用程序而改變的多個文件的應用程序。這些文件可以隨着我的軟件的更新版本而改變,但是用戶也可以修改它們(或者它們可能被應用程序本身改變)。基本上,我正在尋找一種解決方案來防止用戶對這些文件所做的更改被覆蓋,同時也是在用戶升級我的軟件時安裝可能更新的文件的一種方法。使用WiX管理配置文件
對於* NIX上的RPM,您可以使用%config函數將文件定義爲配置文件,然後RPM會重命名現有文件(如果存在)並在升級時安裝新文件(可能不理想,但我可以爲這樣的WiX生活)。
我想將我的配置文件安裝到子目錄或甚至不同的名稱(例如default.cfg),然後使用WiX中的<CopyFile>
元素將文件複製到正確的位置。這樣,默認文件將在安裝時被刪除並在升級時被覆蓋,但實際的用戶文件將保持不變。不幸的是,<CopyFile>
,Windows安裝程序仍然想要管理(並刪除)目標文件。
我也考慮過在WixUtilExtension中使用QtExec動作,基本上是做「複製default.cfg reallocation.cfg」,但這不起作用,而且有點破解。
處理這個問題的正確方法是什麼?