根据this,要在Windows Installer主要升级期间保留用户自定义文件,我需要:
1.将每个.config文件放在其自己的组件中,并将.config文件标记为组件的关键路径
2.在InstallFiles操作后,在新版本的MSI中安排RemoveExistingProducts操作。
<Component Id='config.json' Guid='GUID'>
<File Id='config.json' Name='config.json' DiskId='1' Source='config.json' KeyPath='yes' />
</Component>
...
<InstallExecuteSequence>
<RemoveExistingProducts Before="InstallFiles"/>
</InstallExecuteSequence>
构建期间出现以下警告:
警告LGHT1076:ICE63:某些操作属于InstallInitialize 和RemoveExistingProducts。
安装期间出现以下错误:
安装程序在安装此安装程序时遇到意外错误 包。这可能表明此包装存在问题。错误代码 是2613。
有什么问题?
答案 0 :(得分:1)
处理此问题的最简单方法是设计应用程序,以便用户修改的数据位于其自己的文件中。这样安装程序就可以拥有它放下的文件,应用程序可以在运行时合并这两组数据。 MSI不会删除或覆盖它不知道的内容。
否则,您将在升级期间进行有关如何合并xml / json和其他文件类型的复杂讨论。