.NET5项目添加EF Core迁移提示Microsoft.NETCore.App.deps.json缺失程序集如何解决
.NET 5 EF Core添加迁移程序集缺失报错解决方案
报错根因
该报错本质是本地.NET 5运行时修补版本与项目依赖清单指定的版本不匹配,或EF Core工具、NuGet包缓存异常导致的指定程序集加载失败。
可执行修复步骤
- 第一步:校验本地.NET 5运行时版本
打开终端执行命令dotnet --list-runtimes,检查输出中是否存在版本为5.0.9-servicing.21359.8的Microsoft.NETCore.App运行时。如果缺失,安装对应版本的.NET 5 SDK即可,版本5.0.400的SDK对应匹配该运行时版本。 - 第二步:锁定项目SDK版本
在项目根目录新建global.json文件,写入以下内容固定SDK版本,避免版本自动滚动导致的不匹配:{ "sdk": { "version": "5.0.400", "rollForward": "disable" } } - 第三步:清理并还原NuGet缓存
依次执行以下命令清理缓存并还原项目依赖:dotnet nuget locals all --clear # 删除项目目录下的bin、obj文件夹后执行 dotnet restore - 第四步:对齐EF Core工具版本
确保全局dotnet-ef工具版本与项目中引用的Entity Framework Core版本一致,执行命令:dotnet tool update --global dotnet-ef --version 5.0.9 - 第五步:手动安装缺失程序集
如果以上步骤执行后仍报System.Security.Principal.Windows.dll缺失,直接给项目安装对应NuGet包即可:# 程序包管理器控制台执行 Install-Package System.Security.Principal.Windows -Version 5.0.0 - 第六步:Visual Studio 2019配置校验
打开VS菜单「工具」→「选项」→「项目和解决方案」→「Web包管理」→「外部Web工具」,将$(PATH)选项上移到列表最顶部,避免VS自带的dotnet工具覆盖系统安装的对应版本工具。
报错参考截图

内容的提问来源于stack exchange,提问作者Andres Guillen Hernandez
相关产品推荐
相关产品推荐

