2013-06-20 50 views
0

我現在已經浪費了幾天試圖讓EF重新工作。從我所知道的情況來看,儘管我一直在嘗試使用EF5,但我的項目對EF4有一些參考。使用EF 5(不4.x中)

有人可以指點我需要做的任何步驟,從我的計算機中消除EF4的所有開發相關引用(如果我有第三方.net應用程序使用它,很好 - 我只是不希望它在。我的任何發展)

眼下,沒有什麼工作,因爲它出現了2個版本EF的相互打架 - 甚至當我開始一個新項目。另外,如果我只是使用EF 5,當我想創建一個新的EF類時,我會使用「ADO.NET實體數據模型」還是「EF 5.x DbContext生成器」?我假設第一個作爲第二個似乎想要創建一個tt文件,而不是一個edmx文件,但認爲我會檢查的情況下,我失去了一些明顯的東西...

我正在開發Win 8系統,運行VS 2012,使用C#編寫大型桌面WPF應用程序(1解決方案,大量項目,大量數據)。

FWIW - 我當前非功能解決方案文件夾中的packages文件夾具有EntityFramework.5.0.0,所以我知道我已經安裝了,我只需要從他們不斷感染我的項目的地方消除EF 4.x引用。是的,大部分時間都花在尋找可行的答案上 - 但我發現的所有東西似乎都不允許它工作。

最糟糕的是,在一個點上,這一切都沒有問題的工作 - 然後我試圖通過怒江獲取並從那時起,沒有奏效重新安裝EF 5修復某些東西。

感謝

回答

0

我放棄了這個。這太浪費時間了。我從頭開始了一個新的解決方案,並首先構建了EF項目並確保它的工作。這工作。所以現在我正在有系統地引入其他項目,隨時進行備份,直到我將所有其他項目重新用於新解決方案。

一個大的PITA。我真的希望MS有一個工具可以顯示項目引用的所有程序集 - 名稱,程序集位置和引用它的模塊 - 以便修復這些問題很容易。...

再次感謝您的幫助。

+0

它的確如此。它在解決方案資源管理器中稱爲「參考」項目。它會告訴你所有的信息,並告訴你什麼時候缺少一個參考。右鍵單擊引用並查看屬性以查看它的位置。您也可以打開您的項目文件並查看參考位置。 –

+0

您可能會發現的一件事是您添加對項目的引用的位置,該引用本身具有對您已經引用的庫的不同版本的引用。如果是這種情況,您可能需要提出一個單獨的問題,而不是在評論部分中提出。你所做的並不是一個壞的方法,因爲你會很好地理解解決方案中所有事物之間的依賴關係,如果問題依然存在,你會更好地瞭解哪個部分存在問題。 – meataxe

+0

謝謝 - 我以爲我已經刪除/重新添加了對EntityFramework的引用,但從未想過實際檢查項目文件中的內容。 – JustMeToo

1

不知道這是將解決你的問題,但它可能會幫助......當您使用的NuGet,它操縱您的解決方案:

  • EF NuGet包添加到\包\文件夾中的解決方案根
  • 一個packages.config文件爲您在
  • 的引用在項目文件中添加使用的NuGet解決每個項目創建(* .csproj的爲C#)

有時你可能需要改變什麼的NuGet做,所以你可以在這些方面進行檢查。在你的情況下,你可能會更好地手動刪除兩個EF版本,然後使用nuget或任何適合的方法添加EF5。

聽起來像是你可能已經刪除了EF包,但不收拾你的packages.config和項目文件,所以先檢查有(你會想,而你與解決方案被關閉,以對其進行修改)。

您想刪除開始從每個packages.config文件<package id="EntityFramework"...線。

如果你正在尋找從您的解決方案完全刪除的NuGet,該文件的csproj有<itemgroup><Content Include="packages.config" /> - 刪除整個的ItemGroup,有可能是這個文件,我已經錯過了其他的引用,你會想刪除他們也是。

否則,如果你剛剛刪除EF的東西后,然後尋找<itemgroup>有你的引用,並確保不需要的EF版本的參考不存在。

我認爲這就是你需要的一切 - 當你在做出這些改變後在VS中重新加載解決方案時,你的引用應該是正確的。

+0

由於項目不會在沒有EF引用的情況下編譯,所以我打開了我的EF項目並添加了一個新的EF項目,然後將其刪除。包文件夾神奇地再現。當我試圖運行它時,我又收到了同樣的信息:無法加載文件或程序集'EntityFramework,Version = 4.4.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'或它的某個依賴項。定位的程序集清單定義與程序集引用不匹配。 (來自HRESULT的異常:0x80131040) – JustMeToo

+0

如果它顯示了清單定義和程序集引用,那麼我可以看到錯在哪裏以及它在哪裏尋找錯誤的東西,這將是很好的... – JustMeToo

+0

您是否嘗試過使用包管理工具工具菜單?刪除EF包,然後檢查每個項目Refrences以消除對EntityFramework的引用,然後重新安裝包。 – tschmit007