2012-12-12 132 views
9

我已經搜索過SO,谷歌,耶穌,一切,並不能找出這一個。下面是我做之前,我得到這個錯誤:實體框架代碼第一次遷移投擲錯誤

  1. 安裝的EF(預發佈版本,6也許,我不知道)
  2. 決定,我不想,所以卸載時候並重新安裝了穩定版(5 )
  3. 通過SSMS截斷我的數據庫

這裏是錯誤:

Exception calling "CreateInstanceFrom" with "8" argument(s): "Could not load file or  
assembly 'EntityFramework, Version=5.0.0.0, Culture=neutral, PublicK 
eyToken=b77a5c561934e089' or one of its dependencies. The located assembly's manifest 
definition does not match the assembly reference. (Exception from H 
RESULT: 0x80131040)" 
At C:\Projects\BCATracker.Web\packages\EntityFramework.6.0.0- 
alpha2\tools\EntityFramework.psm1:425 char:31 
+  $domain.CreateInstanceFrom <<<< (
+ CategoryInfo   : NotSpecified: (:) [], MethodInvocationException 
+ FullyQualifiedErrorId : DotNetMethodTargetInvocation 

這裏是我個人有T ried:

從bin目錄中刪除everthing,重建。失敗 從nuget中刪除EF,刪除軟件包目錄中的文件,在nuget中讀取該文件。失敗。 衝牆。失敗

請幫忙!

看,該凸出文件,我看到這一點:

<Reference Include="EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"> 
    <SpecificVersion>False</SpecificVersion> 
    <HintPath>..\packages\EntityFramework.5.0.0\lib\net40\EntityFramework.dll</HintPath> 
</Reference> 

可能的根本原因?

+0

爲什麼你有3個版本的EF? EF6 alpha2(6.0.0.0),EF5 for .NET Framework 4.5(5.0.0.0)和EF 5 for .NET Framework 4(4.4.0.0)。你想用什麼版本?如果您沒有任何其他軟件包 - 手動刪除對EntityFramework.dll的所有引用。如果您想使用EF6,請刪除對System.Data.Entity.dll的引用(如果有)。刪除packages.config(如果你有其他的nuget包,你會打破它們)。安裝您要使用的EF版本。 (我想知道最終的混亂是由於重新定位你的項目造成的......) – Pawel

+0

我想定位爲5,對於.net 4.0,我認爲我是這樣的,但是因爲我簡單地添加了6 alpha,所有東西都搞砸了向上。 4.4我需要什麼dll? – ledgeJumper

+0

然後按照上面的說明清理項目,但不要刪除對System.Data.Entity.dll的引用。確保您的項目以.NET Framework 4爲目標。從Package Manager Console運行'Install-Updates EntityFramework'或使用GUI - 確保您未安裝EF6。這應該讓你獲得EntityFramework.dll 4.4.0.0這是適用於.NET Framework 4的EF5。你現在也應該能夠使用Uninstall-Package。當我想重新調整.NET Framework版本時 - 我總是首先卸載EF,再次重新安裝EF並安裝EF,以確保我擁有正確的版本。 – Pawel

回答

0

我相信我能想出一個解決方案。我的解決方案中有幾個項目。

enter image description here

我的數據庫邏輯是SqlDataAccess。該組件是WebUI中的參考。

我開始在DomainLogic。在那裏爲存儲庫基類定義POCO。

然後我添加了SqlDataAccess項目。

並嘗試Enable-Migrations, Add-MigrationUpdate-Database命令。它運行良好。我添加Web用戶界面(基於MVC 4 Web應用程序後,該項目並運行上面的命令。我開始這個版本錯誤。

我卸載項目WebUI並重新運行該命令。並再次運行得很好。所以,即使它不是最好的解決方案,你可能要卸載其他項目離開atabase項目中的溶液中,然後運行這些命令它爲我所有最優秀的

0

執行以下操作來解決此問題:!

1)從軟件包中卸載Entity Framework(管理NUGET軟件包)。

2)重新啓動Visual Studio。

3)再次從包管理器重新安裝實體框架。

4)添加對System.Data.Entity的引用。

5)在包管理器控制檯中運行命令Enable-Migrations -ContextTypeName Movie.Models.MovieDBContext(這是一個示例上下文)。

之後,您可以看到packages.config中反映的更改。

15

我想出了這個問題。 EntityFramework.dll需要位於GAC for Visual Studio中才能在包管理器中使用它。

  1. 啓動Visual Studio命令提示符(確保你啓動Visual Studio中的管理員)
  2. 轉到你的包目錄,找到的EntityFramework包目錄。
  3. 轉到LIB \ net45(如果靶向4.5)
  4. 類型:GACUTIL/I EntityFramework.dll

注:這可能是明智的,在這一點上完全重新啓動計算機。

我不知道爲什麼Visual Studio停止看到DLL,但這讓我過去了這個問題。

+1

謝謝一堆!它似乎是,Windows 7更新後,我得到這個問題。 – Fragment

+0

沒問題!如果這回答了你的問題,請接受這個答案。我得到積分。 :-) – allen1

+0

已經upvoted;) – Fragment

1

我在使用代碼第一次遷移時也遇到了這個問題。只需將實體框架版本更新爲Entity Framework V6.1.3即可解決此問題。 使用軟件包管理器控制檯命令「安裝,包裝實體框架 - 版本6.1.3」

1
  1. 開放管理的NuGet包解決方案...窗口和更新的EntityFramework
  2. 重新啓動Visual Studio
  3. 運行以下命令:在包管理器控制檯中Enable-Migrations -ContextTypeName Movie.Models.MovieDBContext(這是一個示例上下文)
1

安裝EF 6.1.3,這將解決問題。

0

我使用Windows 10.下面的步驟修正了該問題

  1. 打開程序和功能和「實體」
  2. 做搜索,我注意到一個更新是安裝在2016年1月23日之後, 6.1.3更新於2015年7月22日
  3. 選擇'Entity Framework 6.1.3'等。更新
  4. 點擊「修復」按鈕。修復完成後,我重新啓動了Visual Studio,問題不再出現。

感謝@Farshid提供了一個解決方案的初步線索。

enter image description here

2

是上述評論是正確的,爲我工作。

EntityFramework.dll需要位於GAC for Visual Studio中才能在包管理器中使用它。

1. Start Visual Studio Command Prompt (ensure you started Visual Studio as Administrator) 
2. Go to your packages directory and find the EntityFramework package directory. 
3. Go to lib\net45 (if targeting 4.5)  
4. type: gacutil /i EntityFramework.dll 

注意:在此時重新啓動計算機可能是明智之舉。

C:\Windows\system32>cd.. 

C:\Windows>cd.. 

C:\>cd \packages\EntityFramework.5.0.0\lib\net45 

C:..\packages\EntityFramework.5.0.0\lib\net45> 
gacutil /i EntityFramework.dll 

這將完全有效。

-1

我也面臨着同樣的錯誤,浪費了大量的時間對這個錯誤 **這僅僅是因爲我更新了實體框架,但讓我重新安裝實體框架6.0.0 ** 它給了這個錯誤錯誤解決

enter image description here

相關問題