App.config中的connectionStrings configSource无法正常工作

Ada*_*ean 56 .net c# connection-string visual-studio-2012

我正在尝试将我的连接字符串与我分开App.config,因为你不能像Web.config我一样进行转换,我想我可以使用该configSource属性指向另一个带有连接字符串的配置文件,但它似乎没有工作.

这有效,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>
Run Code Online (Sandbox Code Playgroud)

但这不是,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>
Run Code Online (Sandbox Code Playgroud)

connections.config:

<connectionStrings>
    <add name="DefaultConnection"
      providerName="System.Data.SqlClient"
      connectionString="*snip*" />
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)

我正在寻找最简单的解决方案.

有任何想法吗?

Ode*_*ded 128

如果您自己添加了文件,则可能未正确设置构建操作(在文件属性中).

Copy to Output Directory选项需要是Copy if newerCopy Always确保.config文件最终在bin目录中,否则它将不在那里并且尝试加载配置将失败.

  • 注意:因此,在某些Web应用程序中,您还将添加以下引用:configSource ="bin\connections.config"而不是configSource ="connections.config" (11认同)