在configSource中使用外部.config文件会产生错误

我正在玩弄如何使用Configuration Manager在App.config文件中读取/编写C#中WPF应用程序的自定义部分。 我读了这篇关于.NET 2.0 Configuration Demystified的优秀文章,它帮助我使用配置文件。 这是我写的初始App.config文件,它工作正常。

App.config中

   

但是,当我更改App.config文件时,我的自定义部分将从configSource中提到的外部配置文件中读取,Visual Studio给出了一个错误

configSource文件的格式必须是包含该部分名称的元素。

这是App.config和example.config文件

更改了App.config

    

example.config

     

你真的试过运行代码吗?

Visual Studio的编辑器/ intellisense有一个缺点,它抱怨configSource=属性 – 但它绝对合法, 它确实有效 ! 我每天都在各种生产系统中使用它。

我的建议: 试试吧! 运行代码 – 我很确定它起作用(你的配置看起来不错)。

更新:好的 – 好吧,你似乎完全改变了标签的风格。 在您原来的app.config您有:

  

当然,您的外化example.config必须包含相同的值和相同的结构:

   

你可以尝试这个example.config ??

我得到了同样的错误。 在我的情况下,由于我有两个文件中的密钥,然后检测appSettings标记为重复。

如果您需要在web.config中保存一些与项目相关的密钥,并在另一个文件中保存您的个性化密钥(建议出于安全原因),请使用file属性而不是configSource

web.config文件:

      

AppSettings.config文件:

      

希望对别人有所帮助!

我的问题是我在同一个标​​签中添加了一个configSource和一个键。

不正确:

    

如果删除“添加”标记或将其移动到configSource文件中,则错误消失。

正确:

  

如果您在外部创建的部分是在configSections中定义的,则应将configSource属性放在定义该部分的元素中。 只有appSettings和connectionStrings部分(不需要configSections中的定义)应该在主配置文件的主体中包含带有configSource的标签。