在wix安装程序中升级期间更新并保留web.config文件

时间:2018-03-06 08:29:55

标签: wix windows-installer wix3.10 major-upgrade

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

有没有办法处理这样的场景:在新的条目中添加了与最新安装程序捆绑在一起的配置文件,并保留了在Wix主要升级期间用户修改的现有条目。 / p>

4 个答案:

答案 0 :(得分:1)

我的很多客户喜欢的简单解决方案是不将用户数据放在web.config中。相反,我们使用AppSettings @文件和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

答案 1 :(得分:1)

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

例如,使用Advanced Installer,您可以read and load into an MSI property any XML values,然后在安装(升级)时使用XML Files updater在文件中编写动态内容。 (查看每篇文章末尾的视频,以便更快地了解

免责声明:我致力于构建高级安装程序的团队。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

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

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