我在 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。
有人知道解决这个问题的最简单方法吗?(我相信会建议安装另一个版本的实体框架)
提前致谢
我已经确认,在 VS2017 Nuget 包管理器中,第一个条目是“Microsoft.EntityFrameworkCore”,并且在使用 .Net 4.6 项目的引用搜索“实体”时,它错误地将“最新稳定版 5.0.10”指示为适用版本. (NuGet 应该根据合适的目标依赖项提出建议)
正如 Richard 指出的,您可以在 .Net Framework 项目中使用 EF Core,但限制是 EF Core 3.1,因为 .Net Framework 仅支持 .Net Standard 2.0。如果您在 VS 中使用包管理器 UI,您将需要使用“版本:”的下拉菜单来选择“3.1.19”,因为这是适用于 .Net Framework 4.x 的最后一个版本。
我建议将 EF6 用于 .Net Framework 项目而不是 EF Core 3.1,因为 3.1 仍然缺少 EF6 中的功能。搜索“EntityFramework”将找到“EntityFramework”,即 EF6。(奇怪的是,它在搜索词“实体”下似乎并不容易出现)
请注意,如果您的目标是 .Net Framework 4.6.1,则对该版本的支持将于 2022 年 4 月结束。您应该强烈考虑将目标更新到 4.8,或者至少是 4.6.2。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句