60

我正在尝试将我的连接字符串与我的 分开App.config,并且由于您不能像 with 那样进行转换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>

但这不是,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>

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

有任何想法吗?

4

2 回答 2

135

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

Copy to Output Directory选项必须是Copy if newerorCopy Always以确保.config文件最终在bin目录中,否则它将不存在并且尝试加载配置将失败。

右键单击文件,然后单击属性

在此处输入图像描述

更改为“始终复制”“如果更新则复制”

在此处输入图像描述

于 2013-02-14T11:32:07.220 回答
3

我遇到了同样的问题,Oded 解决方案对我有用。但我只是想知道如何将文件“复制到输出目录选项”更改为“如果更新则复制或始终复制”,您必须

  • 右键单击文件
  • 选择属性
  • 前进
  • 然后将看到复制到输出目录,如果更新则选择复制或始终复制

这对我有帮助,我希望它也能帮助你

于 2016-08-28T20:30:04.143 回答