ASP.Net 5 類庫包中的 EntityFramework 命令?
我正在嘗試開發我的第一個 ASP.Net Web 應用程序,在我的解決方案中我有兩個項目。一個
Web Application和Class Library (Package)。當我建構此應用程序的 ASP.Net 4.5 版本時,我將我的Entity Framework 6實體放入類庫中,所以我在ASP.Net 5版本中這樣做。問題是當我安裝EntityFramework.Commands到類庫時出現錯誤:Project DBEntities 中的依賴 EntityFramework.Command 7.0.0-rc1-final 不支持框架 .NetPlatform,版本 = 5.4
我對這個 SO question的理解
dotnet5.4是,新的 .Net 5 應該由 EF7 支持。這是我的
project.json文件:{ "version": "1.0.0-*", "description": "FFInfo.DAL Class Library", "authors": [ "Mathew" ], "tags": [ "" ], "projectUrl": "", "licenseUrl": "", "frameworks": { "dotnet5.4": { "dependencies": { "Microsoft.CSharp": "4.0.1-beta-23516", "System.Collections": "4.0.11-beta-23516", "System.Linq": "4.0.1-beta-23516", "System.Runtime": "4.0.21-beta-23516", "System.Threading": "4.0.11-beta-23516" } } }, "dependencies": { "EntityFramework.Commands": "7.0.0-rc1-final", "EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final" } }我是否安裝了錯誤的包,EF7 是否發生了很大變化以至於我建構錯誤的類,或者我的 json 文件中缺少某些內容?
編輯:基於建議的新 project.json 文件
{ "version": "1.0.0-*", "description": "FFInfo.DAL Class Library", "authors": [ "Mathew" ], "tags": [ "" ], "projectUrl": "", "licenseUrl": "", "frameworks": { "dotnet5.4": { "dependencies": { "Microsoft.AspNet.Hosting.Abstractions": "1.0.0-*", "Microsoft.Dnx.Runtime": "1.0.0-*", "Microsoft.Extensions.CommandLineUtils.Sources": { "version": "1.0.0-*", "type": "build" }, "Microsoft.Extensions.PlatformAbstractions": "1.0.0-*", "System.Console": "4.0.0-*", "System.IO.FileSystem": "4.0.1-*" } }, "netcore50": { "bin": { "assembly": "lib\\netcore50\\_._" } }, "dependencies": { "EntityFramework.Commands": "7.0.0-rc1-final", "EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final" } } }
我想你的問題的原因是純技術性質的。該公告聲明將 dnx451 重命名為 net451,將 dnxcore50 重命名為 dotnet5.4,但建議僅將此類重命名用於類庫(例如,您在 NuGet 上公開以與其他人共享)。如果我理解正確,您開發的應用程序使用類庫,因此您應該使用
dnxcore50而不是dotnet5.4. 因此**,您只需將字元串“dotnet5.4”重命名為字元串"dnxcore50" in the fileproject.json` 即可解決問題**。獨立於上述建議,我想補充一下我對您的問題的理解,為什麼您會收到有關 EntityFramework.Command 7.0.0-rc1-final 的錯誤。
我將框架的重命名理解為朝著微軟計劃的未來變化邁出的一步。另一方面,框架的所有名稱都將被解釋為不同的名稱。我建議您從https://www.nuget的相應資訊中比較頁面https://www.nuget.org/packages/EntityFramework.Commands/7.0.0-rc1-final上顯示的依賴項資訊。 org/packages/EntityFramework.MicrosoftSqlServer/7.0.0-rc1-final。的依賴關係
EntityFramework.MicrosoftSqlServer(在使用上沒有問題dotnet5.4)看起來像圖片我標記閱讀負責的部分
dotnet5.4。另一方面,依賴關係EntityFramework.Commands如下圖所示:其中沒有對應於新名稱的“.NETPlatform 5.4”部分
dotnet5.4。我想這是以下****部分的錯誤
project.json``EntityFramework.Commands:"netcore50": { "bin": { "assembly": "lib\\netcore50\\_._" } }我想必須更改
netcore50為正確dotnet5.4支持新的框架名稱dotnet5.4。可以將 的內容替換為"netcore50"副本dnxcore50(請參閱行):"dotnet5.4": { "dependencies": { "Microsoft.AspNet.Hosting.Abstractions": "1.0.0-*", "Microsoft.Dnx.Runtime": "1.0.0-*", "Microsoft.Extensions.CommandLineUtils.Sources": { "version": "1.0.0-*", "type": "build" }, "Microsoft.Extensions.PlatformAbstractions": "1.0.0-*", "System.Console": "4.0.0-*", "System.IO.FileSystem": "4.0.1-*" } }可能有人應該增加上面引用的 dll 的一些版本號,但在新的固定版本發布之前,您仍然無法使用
EntityFramework.Commandsunder 。"dotnet5.4"**更新:**我向 EntityFramework 開發團隊提出了這個問題。收到後我會附上微軟對這個問題的回复。

