appsettings文件属性是否覆盖了app.config中的内容?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了appsettings文件属性是否覆盖了app.config中的内容?相关的知识,希望对你有一定的参考价值。

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>
答案
  • 如果文件不存在则不会崩溃,只会被忽略。
  • 外部配置必须包含<appSettings>节点,因此您的第一个示例是正确的。
  • 外部文件中的值将优先,如果不存在任何值,则使用app.config值。

这会掩盖一切吗?

另一答案

关于这个问题的最佳答案之一是:ASP.NET web.config: configSource vs. file attributes - 来自@Massimiliano Peluso

file属性

configSource属性

file属性指定包含自定义设置的外部文件,就像在web.config文件的appSettings条目中一样。同时,configSource属性中指定的外部文件包含您声明configSource的部分的设置。例如,如果使用pages部分的configSource属性,则外部文件将包含pages部分的设置。

在file属性中指定的外部配置中声明的自定义设置将与web.config文件中appSettings部分中的设置合并。同时,configSource不支持合并,这意味着您必须将整个部分设置移动到外部文件中。

http://www.codeproject.com/Messages/1463547/Re-difference-between-configSource-and-file-attrib.aspx

以上是关于appsettings文件属性是否覆盖了app.config中的内容?的主要内容,如果未能解决你的问题,请参考以下文章

不要用 clickonce 覆盖 settings.settings 文件

JetBrains Rider - 配置 appsettings 覆盖

用 appsettings.Production.json 中的设置覆盖 appsettings.json 中的数组设置

来自 docker-compose 的 ASPNETCORE_URLS 没有覆盖 appsetting.production.json

是否有任何标准方法可以从 .NET 4.6.1 中的 appSettings.config 文件加载数组

在VS2019 / .Net Core 3.1中使用“生产单个文件”发布选项时,是否可以保持appsettings.json可编辑的后期部署?