2012-09-20 118 views
3

有一個類庫和一個WPF應用程序,並且試圖包含類庫中的所有實體框架項並使用接口來獲取信息。一切都設置好了,但每次我嘗試時都會收到此消息:實體框架版本問題

消息「System.Data.Entity.Internal.AppConfig的類型初始值設定項引發異常。」

當我查看內部異常時,它看起來無法找到EntityFramework的5.0.0.0版本,當我檢查它的引用時,它是4.4.0.0。試圖通過NuGet卸載並重新安裝EntityFramework,但沒有運氣。關於下一步嘗試的任何想法?

應用程序配置:

<?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=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
</configSections> 
    <entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /> 
    </entityFramework> 
</configuration> 
+0

你可以發佈你的web.config? – Gromer

+0

不,它不是一個Web應用程序,它在類庫中。 – user1166905

+0

所以....也許你的app.config然後...? – Gromer

回答

2

卸載的EntityFramework

更新類庫到.NET版本4.5

重新安裝的EntityFramework

現在所有的工作。

+0

如果某些人失敗了,請嘗試清理項目並重建。 – Behr

4

我覺得這是你的app.config prehaps一個問題,你不具備以下條件:

<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=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
    </configSections> 
    <entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /> 
    </entityFramework> 

這需要在您的應用程序配置文件入口點(無論可執行文件/ webapp正在運行/使用你的類庫)

需要注意的一個關鍵細節是EF4.4在EF5包內部發布,並用於非.NET 4 0.5應用(即,如果您有.NET 4.5的參考會以其他方式.NET 4 5.0將是4.4)

+0

我應該改變.net版本到4.5也許? – user1166905

+0

它完全取決於你,EF將與任何工作(假設你有.net 4的上述配置或.net 4.5的替代品).net4.5有很多其他很酷的東西,我會強烈建議安裝它(對於數據庫性能的原因),但作爲天氣你用它爲你的應用程序它非常你的決定 –

+0

只是爲了更清楚,如果你升級你的項目EntityFramework從.net40參考到.net45,你會得到OP的錯誤。您需要在入口網站的web.config中將「Version = 4.4.0.0」更改爲「Version = 5.0.0.0」。 – Levitikon

1

我已經嘗試將EF的版本在webconfig中更改爲項目中EF的當前安裝版本,並且一切正常。

+0

謝謝。果然,即使我的DLL是「4.4.0.0」,web.config

版本爲「5.0.0.0」。 – SushiGuy