2012-02-16 94 views
0

我有一個使用EF Code First的解決方案。我最近將所有項目升級到了EF 4.3(使用NuGet)。但是,之後我發現另一個包(EFHooks)不適用於該版本。什麼是從您的項目中刪除Entity Framework 4.3的正確方法?

因此,我決定將版本回滾到4.1.10715.0,這是我可以與EFHooks一起使用的最新版本。

當我編譯應用程序時,一切都編譯好。我可以運行所有的測試,並通過(單元測試,集成測試,數據庫測試等)。然而,當我運行的網站(MVC 3),它給了我一個運行時錯誤,指出

無法加載文件或程序集「的EntityFramework」或它 的一個依賴。 ...版本= 4.3.0.0等等

我已經檢查了我所有的packages.config和我的web.config。我已經檢查了所有參考的dll版本。一切都與4.1一致。

我找不到任何地方在我的解決方案中使用4.3的任何東西,但該網站試圖找到它,因爲某些東西。

我錯過了什麼回滾?

+0

你是如何執行回滾?順便說一句。你是否嘗試更改程序集綁定並將4.1.10715.0重定向到4.3? – 2012-02-17 09:24:56

+0

我經歷了每個項目,並通過PM控制檯執行了Uninstall-Package命令。我會嘗試重新定位到4.3並查看它是否啓動網站,但這並不能真正解決我的問題。 – Joseph 2012-02-17 14:27:49

回答

1

事實證明,在真正的錯誤的是,我沒有我的DbContext有線到我的IoC容器。在這種情況下,Ninject。

因此,當請求DBContext時,IoC容器出錯,因爲它沒有連接到應用程序。

我不明白爲什麼它給了我這樣做的錯誤,但對於經歷過相同步驟的任何人,我希望如果您發現自己與我所處的位置相同,這可能會有用。

因此,所有我需要添加的代碼基本上只是以下幾點:

Bind<ICustomSession>().To<EFDBContext>().InRequestScope(); 
1

點檢查:

  1. 驗證web.config結合的版本,你要
  2. 驗證\bin文件夾中包含了正確版本的組件
  3. 執行iisresetC:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files

  4. 刪除temporay文件

    嘗試redirecting程序集到您想要的版本

+0

好的建議KMoraz。不幸的是,我得到的錯誤確實與我的實際問題沒有任何關係。 – Joseph 2012-02-27 13:07:39

相關問題