【问题标题】:Does web.config override any app.configs?web.config 是否覆盖任何 app.configs?
【发布时间】:2010-11-30 01:09:50
【问题描述】:

如果我有一个 Web 应用程序(有自己的 web.config),并且它使用的 .dll 恰好有自己的 app.config,当发生冲突时哪个设置文件胜出?

【问题讨论】:

    标签: .net web-config settings app-config


    【解决方案1】:

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

    即使您将库的 .config 文件放在同一个文件夹中,应用程序也不会从中获取值。

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

    【讨论】:

    • 这个库中有一个 app.config 文件,其中提到了连接字符串。
    • @Kirschtein:默认情况下它们不会被应用程序拾取。您的方案是加载项方案吗?如果是这样,应用程序可能会将库加载到单独的 AppDomain 中,并将 AppDomain 指向相关的 app.config,但否则这些连接字符串将不会由库加载,除非它们在您的 web.config 中指定。
    【解决方案2】:

    您可以将另一个配置文件中的设置合并到您的 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>
    

    【讨论】:

      猜你喜欢
      • 2010-11-17
      • 2012-08-07
      • 2010-12-31
      • 1970-01-01
      • 1970-01-01
      • 2015-11-05
      • 2010-09-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多