在主要升级期间处理web.config文件的标准方法是什么?我知道在升级过程中如何处理未版本控制的文件,如果用户修改了文件,则不会替换该文件。
有没有办法处理这样一种情况:将新条目添加到与需要安装的最新安装程序捆绑的配置文件中,并保留用户在Wix中主要升级期间修改的现有条目。
我的许多客户喜欢的简单解决方案是不要将用户数据放在web.config中。 相反,我们使用 AppSettings@file 和 ConnectionStrings@ConfigSource 元素来指定覆盖文件并将用户数据保留在那里。 MSI不知道的东西不会篡改。现在,您不必是 MSI 组件规则向导。
https://msdn.microsoft.com/en-us/library/ms228154(v=vs.85(.aspx
https://msdn.microsoft.com/en-us/library/system.configuration.sectioninformation.configsource(v=vs.100(.aspx
问题是针对Wix的,但只是想指出在这种情况下商业工具可以节省多少时间。
例如,使用高级安装程序,可以读取任何 XML 值并将其加载到 MSI 属性中,然后在安装(升级(时使用 XML 文件更新程序在文件中写入动态内容。(查看每篇文章末尾的视频以更快地概述(
免责声明:我致力于团队建设高级安装程序。
将组件设置为始终覆盖并编写自定义操作以将所需信息添加到配置文件中。
似乎唯一可能的方法是自定义操作将新文件中的条目合并到现有文件中,因为您需要现有新文件中的数据。您还需要计划稍后(在 InstallExecute 之后(进行升级,以便升级不是卸载旧产品后安装新产品。
如果要进行升级(WIX_UPGRADE_DETECTED属性将由 MajorUpgrade 元素设置(,请更新现有文件,否则安装新文件。
可能有一种方法可以将更新表示为 Xml 转换,因此 WiX util:xml 工具中的某些内容可能有助于进行更新。