【发布时间】:2021-09-21 14:37:43
【问题描述】:
我在 C# 中的第一步很糟糕。
现在我正在尝试安装实体框架。为此,我只需转到 NuGet 包管理器,输入“Entity”并尝试安装第一个条目,即“Microsoft.EntityFrameworkCore”,版本 v5.0.10。
失败并显示以下错误消息:
无法安装包“Microsoft.EntityFrameworkCore 5.0.10”。您正在尝试将此包安装到以“.NETFramework,Version=v4.6.1”为目标的项目中,但该包不包含任何与该框架兼容的程序集引用或内容文件。如需更多信息,请联系包作者。
这怎么可能? .NetFramework,v4.6.1 版本是我公司的默认版本,我刚刚在搜索结果中单击了第一个 NuGet 包,据我所知,Visual Studio 2017 是一个基本的 IDE。
最重要的是,没有方向可以去:错误消息只是说“不兼容”,但没有提到 .NetFramework 版本太旧或太新,.Net Framework 太旧或太新, ...
错误信息提到了“联系包作者”,但是当我访问实体框架(https://docs.microsoft.com/en-us/ef/core/)的“项目 URL”时,该网站甚至没有提到 .NetFramework。
有人知道解决这个问题的最简单方法吗? (我相信建议安装另一个版本的实体框架)
提前致谢
【问题讨论】:
-
EF Core 旨在用于 .NET Core 3.1 / .NET 5 或更高版本; .NET Framework 非常陈旧(好吧,2015 年 - 但这是科技行业!)并且基本上已经报废(net461 从明年 4 月开始正式死亡,但已经有效地 死了好几年);有什么方法可以挑战使用 .NET Framework 4.6.1 的决定吗?因为:这不适用于 EF Core。 有 EF for .NET Framework 的一个变体,但它是完全不同的东西(尽管相关)
-
您正在寻找nuget.org/packages/EntityFramework(没有“核心”)。您可以在“依赖项”部分查看它是否适用于旧版 .Net 框架。正如@MarcGravell 建议的那样,我会检查您是否可以升级项目以使用.Net 5(即.Net 核心)。
-
@MarcGravell EF Core v3.x 在 .NET Framework 项目中运行良好。只有 v5+ 不支持。 :)
-
@RichardDeeming 很公平,很好的说明;但是,无论哪种情况:我可能会反对使用过时且未维护的库版本,除非它是唯一可用的选项;如果 OP 可以 使用 .NET 5(或类似的),那将是一个更好的结果 IMO
-
@MarcGravell 是的,在理想的世界中,我们都会迁移到最新最好的。 (虽然 IIRC,.NET 6 是下一个 LTS 版本。)但并不总是有预算或时间来迁移现有的代码库,特别是当迁移的好处对最终用户来说不是立即显而易见的时候。如果您需要从 ASP.NET 与 SSRS 交互,那么您将被 4.x 困住,因为它依赖于 WebForms。
标签: c# visual-studio entity-framework visual-studio-2017 .net-framework-version