2017-03-31 44 views
0

這非常令人困惑。System.InvalidOperationException:在應用程序配置文件中找不到名爲'SALESDBEntities'的連接字符串

我有一個主項目和類庫的解決方案。我所有的DbContext都在類庫中。我手動將上下文的連接字符串從類庫複製到主項目。除了一個項目外,我使用這個設置來處理許多沒有問題的項目。

的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> 

他們是毫不誇張地相同。

根據我的n日誌我得到的例外是:

System.InvalidOperationException:沒有名爲「SALESDBEntities」連接字符串可能會在應用程序配置文件中找到。

我不能爲了我的生活找出爲什麼這個異常繼續發生在這個項目中。兩個連接字符串都完全相同,並且可以在引用這個相同類庫的其他項目上工作。

+0

主要項目是什麼樣的應用程序? –

+0

只是一個標準的C#WPF應用程序。 – jlatimer11

+0

那麼我真的沒有任何想法。檢查配置文件在運行時是否確實包含連接字符串,也許在構建過程中發生了一些混亂的事情。 –

回答

0

我已經找到了解決我自己的問題。

我注意到app.configappname.exe.config文件大小不一樣,也沒有包含相同的內容。

我必須清除bin/Debugobj/Debug目錄以使文件最終匹配。

相關問題