接続文字列を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>
最も簡単なソリューションを探しています。
何か案は?
自分でファイルを追加した場合、(ファイルプロパティの)ビルドアクションが正しく設定されていない可能性があります。
Copy to Output Directory
オプションをCopy if newer
またはCopy Always
にして、.config
ファイルがbin
ディレクトリにあることを確認する必要があります。そうでない場合、構成をロードしようとすると失敗します。
私は同じ問題を抱えていましたが、Odedソリューションが有効です。しかし、「出力ディレクトリにコピー」オプションを「新しい場合は常にコピーする」、「常にコピーする」ファイルに変更する方法を見つけるには、
これは私を助けた、私もそれがあなたを助けることを願っています