在App.config中的connectionStrings configSource不起作用

我试图从我的App.config分离我的连接string,因为你不能像Web.config那样进行转换,所以我想我可以使用configSource属性来指向另一个configuration文件,但似乎没有工作。

这工作, App.config

 <?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=*snip*" requirePermission="false" /> </configSections> <entityFramework> <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework"> <parameters> <parameter value="v11.0" /> </parameters> </defaultConnectionFactory> </entityFramework> <connectionStrings> <add name="DefaultConnection" providerName="System.Data.SqlClient" connectionString="Server=*snip*" /> </connectionStrings> </configuration> 

但是这不, App.config

 <?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=*snip*" requirePermission="false" /> </configSections> <entityFramework> <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework"> <parameters> <parameter value="v11.0" /> </parameters> </defaultConnectionFactory> </entityFramework> <connectionStrings configSource="connections.config" /> </configuration> 

connections.config

 <connectionStrings> <add name="DefaultConnection" providerName="System.Data.SqlClient" connectionString="*snip*" /> </connectionStrings> 

我正在寻找最简单的解决scheme。

有任何想法吗?

如果您自己添加文件,生成操作(在文件属性中)可能没有正确设置。

Copy to Output Directory选项需要Copy if newerCopy Always确保.config文件结束在bin目录,否则不会在那里,试图加载configuration将失败。

我有同样的问题和Oded解决scheme为我工作。 但我只是精确的了解如何更改文件“复制到输出目录选项”为“复制如果更新或总是复制”,您必须

  • 大概点击该文件
  • select属性
  • 去推进
  • 然后将看到复制到输出目录,并select复制,如果更新或复制总是

这帮助了我,我希望它也能帮助你