Adam K Dean Adam K Dean - 3 months ago 22
C# Question

connectionStrings configSource in App.config not working

I'm trying to separate my connection string from my

App.config
, and as you can't do transformations like with
Web.config
, I thought may I could use the
configSource
attribute to point to another config file with the connection string in, but it doesn't seem to be working.

This works,
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>


But this doesn't,
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>


I'm looking for the simplest of solutions.

Any ideas?

Answer

If you added the file yourself, the build action (in the file properties) may not have been set correctly.

The Copy to Output Directory option needs to be Copy if newer or Copy Always to ensure that the .config file ends up in the bin directory, otherwise it will not be there and trying to load the configuration will fail.

Comments