【问题标题】:Is there any way for an App.config file to reference another full config file? (.NET)App.config 文件有没有办法引用另一个完整的配置文件? (。网)
【发布时间】:2010-10-04 00:46:02
【问题描述】:

更新:此问题(包括标题)已改写,详情请参阅历史记录

我知道以下 App.config 包含一个外部文件:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings configSource="appSettings.config"/>
  <system.net>
    <connectionManagement>
      <add address="*" maxconnection="50"/>
    </connectionManagement>
  </system.net>
</configuration>

但我不知道如何将 system.net 移动到第二个文件。实际上我没有尝试过,但我几乎可以肯定它不会起作用,我想知道 App.config 是否有办法通过引用包含另一个 App.config 文件。

【问题讨论】:

  • 你为什么要把配置分成2个文件而不是1个呢?
  • 因为一个是给库的,另一个是给使用库的项目的。
  • dll 共享apps .config,为什么需要另一个文件中的system.net 部分?
  • 这只是避免重复的问题。我想在 DLL 项目中更改一次设置,当我重建包含 DLL 项目的其他解决方案时,无需在另一个 App.config 文件中进行相同的更改即可进行更改。

标签: .net app-config


【解决方案1】:

我认为您只需删除 configSource 属性,然后将所有内容包含在 &lt;appSettings&gt;&lt;connectionStrings&gt; 元素中

【讨论】:

  • 但我仍然需要它是 2 个单独的文件,第一个引用实际包含配置的第二个文件。
  • 问:“dll 共享应用程序.config” 答:是的,我知道。问:“为什么你需要另一个文件中的 system.net 部分?” A:这只是一个例子,为了我的全部动机,请参阅我写给这个问题的最新评论。
【解决方案2】:

您不应将 system.net 部分放在 appSettings.config 中。标准做法是子配置文件中的一个配置节点。我什至不确定是否可以与不同的节点共享同一个文件。

您应该创建另一个名为 system.net.config 的文件,并将整个主体放在其中,完整的

  <system.net>
    <connectionManagement>
      <add address="*" maxconnection="50"/>
    </connectionManagement>
  </system.net>

然后在 App.config 中将 system.net 更新为

  <system.net>
    <connectionManagement configSource="system.net.connectionManagement.config"/>
  </system.net>

【讨论】:

  • system.net 不能声明 configSource
  • 更新了答案以将 configSource 1 级别更深,对 DV 而言毫无意义的答案本质上是正确的,但与徒手编码无关...
  • 如果在文档中更容易找到可以配置和不可以配置的内容,那就太好了。
【解决方案3】:

我能够使用 configSource 让它工作

<configSections>
    <section name="Sites"
             type="Wap.Common.Configuration.SiteHandler, Wap.Common" />
</configSections>

<Sites configSource="Sites.Prod.config" />

然后在外部配置文件中需要有 ?xml 标签

<?xml version="1.0" encoding="utf-8" ?>
<Sites>
...
</Sites>

然后你需要设置外部配置文件总是复制到输出目录

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-04
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多