web.config会覆盖任何app.config吗?

4
如果我有一个网络应用程序(有自己的web.config),而它使用的.dll恰好有它自己的app.config,当存在冲突时哪个设置文件会胜出?
2个回答

6

不会冲突,因为.dll文件不能有自己的.config文件。

即使您在相同的文件夹中为库放置了.config文件,应用程序也不会从中获取值。

如果您想使用其中一些值,则可以将它们合并到您的web.config文件中。


这个库里面有一个app.config文件,里面提到了连接字符串。 - Kirschstein
2
@Kirschtein:默认情况下,应用程序不会自动捕获它们。您的场景是否为插件场景?如果是这样,应用程序可以将库加载到单独的AppDomain中,并将该AppDomain指向相关的app.config文件,但除此之外,除非在web.config中指定了这些连接字符串,否则该库将不会加载这些连接字符串。 - Mark Seemann

3
你可以将另一个配置文件中的设置合并到你的 web.config 文件中。这还允许你在有相同键的情况下覆盖值。 web.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings file="YourSettings.config">
    <add key="KeyToOverride" value="Original" />
    <add key="KeyToNotOverride" value="Standard" />
  </appSettings>
  ...

YourSettings.config

<appSettings>
  <add key="KeyToOverride" value="Overridden" />
  <add key="KeyToBeAdded" value="EntirelyNew" />
</appSettings>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接