2016-02-22 25 views
0

我有我分裂成三個項目的aspnetcore解決方案:ASP NET內核無法加載System.Data.SqlClient的

  • Project.Core dnxcore50主要的應用程序 - 啓動居住在這裏,有Project.EF & Project.Model依賴項
  • Project.EF dotnet5.4 class libary - dbcontext駐留在此處並具有Project.Model依賴性。 DOTNET-EF工具在這裏駐留
  • Project.Models dotnet5.4類庫

使用DOTNET CLI工具(DOTNET-EF),我是能夠成功地遷移添加到項目中。但是,當我執行更新數據庫來應用遷移時,我收到了一個我似乎無法解決的異常。

C:\Users\chris\Documents\project\core\src\Project.EF 
dotnet ef database update -s ..\Project.Core 

無法加載文件或程序集 'System.Data.SqlClient的, 版本= 4.0.0.0,文化=中性公鑰= b03f5f7f11d50a3a' 其依賴的或 之一。該系統找不到指定的文件。

如果有人對我如何得到這最後一塊作品有一些指導,將不勝感激。下面是我Project.EF project.json

{ 
    "dependencies": { 
    "Microsoft.EntityFrameworkCore": "1.0.0-*", 
    "Microsoft.EntityFrameworkCore.Commands": "1.0.0-*", 
    "Microsoft.EntityFrameworkCore.SqlServer": "1.0.0-*", 
    "Microsoft.AspNetCore.Hosting": "1.0.0-*", 
    "Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.0.0-*", 
    "OpenIddict.EF": "1.0.0-*", 
    "Project.Models": "1.0.0-*" 
    }, 

    "frameworks": { 
    "dotnet5.4": { 
     "imports": "portable-net451+win8", 
     "dependencies": { 
     "System.Data.SqlClient": "4.0.0-*" 
     } 
    } 
    }, 

    "tools": { 
    "dotnet-ef": "1.0.0-*" 
    } 
} 
+1

我們已經看到了一些錯誤導致這種或類似的例外。一個例子是https://github.com/dotnet/corefx/issues/3760。這個特別的問題是關於SqlClient的本地部分,這取決於需要安裝Visual C++ 2012 Redistributable的C++運行時庫版本。該錯誤應該在代碼中修復,但更新後的本機二進制文件可能尚未發佈。 如果安裝可再發行組件不起作用,您可能會遇到另一個問題。我建議你在那個錯誤數據庫中搜索,如果你沒有找到解決方案,就會創建一個新的問題。 – divega

+1

另一個例子是https://github.com/dotnet/corefx/issues/4776,它在RC1 Update 1中修復。 – divega

回答

-2

這種設計文件的目的是定義什麼實體框架從實施的SqlClient需要EF7使用與ASP.NET vNext上CoreCLR支持的副本。

有兩個單獨的組件需要這樣做,System.Data.Common和System.Data.Common的SqlClient實現。本文件涵蓋了這兩個組件的要求。

https://github.com/aspnet/EntityFramework/wiki/Design-SqlClient-for-EF7