app.config中的appsettings标签有一个文件属性:
<appSettings file="other.config">
..
..
</appSettings>
这是如何工作的?它会将appSettings(原始)中的内容与other.config文件合并吗?或者它会覆盖它吗?如果other.config文件不存在,该怎么办呢?
我自己正在尝试,如果一个密钥不在原文中,它似乎没有从other.config读取它?
other.config文件是否只有xml节点,还是应该都在appsettings元素中?
<appSettings>
<userId>123</userId>
</appSettings>
或
<userId>123</userId>
答案 0 :(得分:39)
<appSettings>
节点,因此您的第一个示例是正确的。这会掩盖一切吗?
答案 1 :(得分:2)
关于此问题的最佳答案之一是:ASP.NET web.config: configSource vs. file attributes-感谢@Massimiliano Peluso
file
属性
appSettings
部分 .config
属性
configSource
appSettings
。 configSource
属性指定一个包含自定义设置的外部文件,就像在web.config文件的appSettings条目中所做的一样。
同时,在System.Configuration.ConfigurationErrorsException
属性中指定的外部文件包含您声明configSource的部分的设置。例如,如果您使用页面部分的configSource属性,则外部文件将包含页面部分的设置。
在外部配置中声明的自定义设置已在 文件属性将与appSettings中的设置合并 web.config文件中的部分。同时,configSource 不支持合并,这意味着您必须移动整个 部分设置进入外部文件。