J'essaie de séparer ma chaîne de connexion de mon App.config
, et comme vous ne pouvez pas faire de transformations comme avec Web.config
, J'ai pensé que je pourrais utiliser l'attribut configSource
pour pointer vers un autre fichier de configuration avec la chaîne de connexion, mais cela ne semble pas fonctionner.
Cela marche, 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>
Mais ce n'est pas le cas, 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>
Je recherche la solution la plus simple.
Des idées?
Si vous avez ajouté le fichier vous-même, l'action de génération (dans les propriétés du fichier) peut ne pas avoir été définie correctement.
Le Copy to Output Directory
l'option doit être Copy if newer
ou Copy Always
pour garantir que le .config
le fichier se retrouve dans le répertoire bin
, sinon il ne sera pas là et la tentative de chargement de la configuration échouera.
J'ai eu le même problème et la solution Oded fonctionne pour moi. Mais je vais juste préciser que pour savoir comment changer le fichier "Option Copier vers le répertoire de sortie" pour être "copier si plus récent ou copier toujours", vous devez
Cela m'a aidé, j'espère que cela vous aidera aussi