1

在重大升级期间处理 web.config 文件的标准方法是什么。我知道在升级期间如何处理未版本控制的文件,如果文件已被用户修改,则不会替换该文件。

有没有办法处理在配置文件中添加了新条目与需要安装的最新安装程序捆绑在一起的情况,并且还保留了用户在 Wix 的主要升级期间修改的现有条目。

4

4 回答 4

1

我知道这个问题是针对 Wix 的,但只是想指出商业工具在这种情况下可以节省多少时间。

例如,使用高级安装程序,您可以读取任何 XML 值并将其加载到 MSI 属性中,然后在安装(升级)时使用XML 文件更新程序在文件中写入动态内容。(查看每篇文章末尾的视频以获得更快的概述

免责声明:我在团队建设 Advanced Installer 工作。

于 2018-03-07T10:20:09.147 回答
1

我的很多客户都喜欢的简单解决方案是不将用户数据放入 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

于 2018-03-07T01:32:03.667 回答
0

似乎可能的唯一方法是将新文件中的条目合并到现有文件中的自定义操作,因为您需要来自现有新文件的数据。您还需要安排较晚的升级(在 InstallExecute 之后),以便升级不是卸载旧产品,然后安装新产品。

如果您正在进行升级(WIX_UPGRADE_DETECTED 属性将由 MajorUpgrade 元素设置),请更新现有文件,否则安装新文件。

可能有一种方法可以将更新表示为 Xml 转换,因此 WiX util:xml 工具中的某些内容可能有助于进行更新。

于 2018-03-06T19:39:28.143 回答
0

将组件设置为始终覆盖并编写自定义操作以将所需信息添加到配置文件中。

于 2018-03-06T11:50:16.147 回答