我正在尝试将我的连接字符串与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>
但这不,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>
我正在寻找最简单的解决方案。
有什么想法吗?
答案 0 :(得分:127)
如果您自己添加了文件,则可能未正确设置构建操作(在文件属性中)。
Copy to Output Directory
选项必须为Copy if newer
或Copy Always
,以确保.config
文件最终位于bin
目录中,否则将不会在那里尝试加载配置将失败。
答案 1 :(得分:3)
我有同样的问题,Oded解决方案适合我。但我会精确地找出如何更改文件&#34;复制到输出目录选项&#34;如果更新或复制总是&#34;,你必须
这对我有所帮助,我希望它也能帮助你