2017-03-31 24 views
0

これはかなり混乱しています。System.InvalidOperationException:アプリケーション設定ファイルで 'SALESDBEntities'という名前の接続文字列が見つかりません

私には、メインプロジェクトとクラスライブラリのソリューションがあります。すべての私のDbContextsは、クラスライブラリ内にあります。私は手動でコンテキストの接続文字列をクラスライブラリからメインプロジェクトにコピーします。 1つのプロジェクトを除いて、多くのプロジェクトでこの設定を問題なく使用しました。クラスライブラリのための

のapp.config:主プロジェクトのための

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <configSections> 
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> 
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
    <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> 
     <section name="Common_Code.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
    </sectionGroup> 
    </configSections> 
    <connectionStrings> 
    <add name="SALESDBEntities" connectionString="metadata=res://CommonCode/Datasets.Contexts.Sales_Data.csdl|res://CommonCode/Datasets.Contexts.Sales_Data.ssdl|res://CommonCode/Datasets.Contexts.Sales_Data.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=server2\SQLEXPRESS;initial catalog=SALESDB;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /> 
    <add name="DESIGNDBEntities" connectionString="metadata=res://CommonCode/Datasets.Contexts.Design_Data.csdl|res://CommonCode/Datasets.Contexts.Design_Data.ssdl|res://CommonCode/Datasets.Contexts.Design_Data.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=server2\SQLEXPRESS;initial catalog=DESIGNDB;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /> 
    <add name="PRODDBEntities" connectionString="metadata=res://CommonCode/Datasets.Contexts.Manufacturing.Manufacturing_Data.csdl|res://CommonCode/Datasets.Contexts.Manufacturing.Manufacturing_Data.ssdl|res://CommonCode/Datasets.Contexts.Manufacturing.Manufacturing_Data.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=server2\SQLEXPRESS;initial catalog=PRODDB;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /> 
    <add name="QCDBEntities" connectionString="metadata=res://CommonCode/Datasets.Contexts.QC_Data.csdl|res://CommonCode/Datasets.Contexts.QC_Data.ssdl|res://CommonCode/Datasets.Contexts.QC_Data.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=S612SRVR1\SQLEXPRESS;initial catalog=QCDB;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /> 
    </connectionStrings> 
    <entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /> 
    <providers> 
     <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> 
    </providers> 
    </entityFramework> 
</configuration> 

のapp.config:

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <configSections> 
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> 
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
    <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> 
     <section name="Common_Code.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
    </sectionGroup> 
    </configSections> 
    <connectionStrings> 
    <add name="SALESDBEntities" connectionString="metadata=res://CommonCode/Datasets.Contexts.Sales_Data.csdl|res://CommonCode/Datasets.Contexts.Sales_Data.ssdl|res://CommonCode/Datasets.Contexts.Sales_Data.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=server2\SQLEXPRESS;initial catalog=SALESDB;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /> 
    <add name="DESIGNDBEntities" connectionString="metadata=res://CommonCode/Datasets.Contexts.Design_Data.csdl|res://CommonCode/Datasets.Contexts.Design_Data.ssdl|res://CommonCode/Datasets.Contexts.Design_Data.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=server2\SQLEXPRESS;initial catalog=DESIGNDB;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /> 
    <add name="PRODDBEntities" connectionString="metadata=res://CommonCode/Datasets.Contexts.Manufacturing.Manufacturing_Data.csdl|res://CommonCode/Datasets.Contexts.Manufacturing.Manufacturing_Data.ssdl|res://CommonCode/Datasets.Contexts.Manufacturing.Manufacturing_Data.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=server2\SQLEXPRESS;initial catalog=PRODDB;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /> 
    <add name="QCDBEntities" connectionString="metadata=res://CommonCode/Datasets.Contexts.QC_Data.csdl|res://CommonCode/Datasets.Contexts.QC_Data.ssdl|res://CommonCode/Datasets.Contexts.QC_Data.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=S612SRVR1\SQLEXPRESS;initial catalog=QCDB;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /> 
    </connectionStrings> 
    <entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /> 
    <providers> 
     <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> 
    </providers> 
    </entityFramework> 
</configuration> 

彼らは文字通り同じです。

私nLogによると、私は取得しています例外は次のとおりです。

のSystem.InvalidOperationException:「SALESDBEntities」という名前なしの接続文字列は、アプリケーションの設定ファイルに見つかりませんでした。

私の人生では、なぜこの例外がこのプロジェクトで起きているのか理解できません。両方の接続文字列はまったく同じで、同じクラスライブラリを参照する他のプロジェクトでも動作します。

+0

メインプロジェクトはどのようなアプリケーションですか? –

+0

標準のC#WPFアプリケーションです。 – jlatimer11

+0

私は本当にアイデアはありません。設定ファイルに実際に接続文字列が含まれていることを確認してください。ビルド中に何か問題が発生する可能性があります。 –

答えて

0

私は自分の問題に対する解決策を見つけました。

app.configappname.exe.configファイルが同じサイズでなく、同じ内容を含んでいないことに気付きました。

最後にファイルが一致するようにbin/Debugobj/Debugのディレクトリをクリアする必要がありました。

関連する問題