我正在尝试找出更新现有应用程序的app.config文件以包含新应用设置的最佳做法,而不会覆盖预先存在的设置值。
因此,从一开始,我就有一个项目由Visual Studio安装项目构建到MSI中,并且该MSI用于安装应用程序。此应用程序已安装在大约1000多个位置。现在,在应用程序的新版本中,我们有一个新的应用程序设置来定义Web服务端点。但是,安装项目不会使用新设置部署新的app.config,因为安装项目非常愚蠢,如果它们尚不存在,或者现有的app.config有安装,它们将只安装app.config匹配创建和修改的日期,以避免覆盖用户定义的配置。
现在,由于我无法覆盖app.config,我想可能我会将app.config更改部署为单独的XML文件,并且在应用程序启动时,我将加载此单独的XML文件,复制所有设置中的设置,与实际app.config文件中的设置相比,以及任何缺少的内容我将保存到app.config文件中。
但是我在从外部XML文件加载配置并将其复制到app.config时遇到问题。我该怎么做呢?还有其他更好的方法来管理更新app.config文件吗?什么是最佳做法?
我对Java更熟悉,这对于属性文件来说非常简单,但使用.NET配置文件似乎并不那么简单。
答案 0 :(得分:1)
据我所知,没有开箱即用的方法。
我是通过将文件解析为XDocument,然后检查doc.Element(“settingName”)是否为空来实现的。如果是,则该设置不存在,您可以添加默认值。如果节点存在,则用户已定义自定义设置。
答案 1 :(得分:1)