UWP项目引用EntityFrameworkCore NuGet包时依赖缺失问题解决
这种手动下载NuGet包放到本地源后,依然提示找不到依赖的情况我也碰到过,大概率是包源配置、缓存或者包引用的小问题,咱们一步步来排查解决:
确认本地包源配置无误
打开Visual Studio的「工具 > NuGet包管理器 > 包管理器设置」,检查你添加的本地文件夹是否已经被正确列为包源,路径有没有输错,或者文件夹有没有权限问题(比如NuGet进程读不到这个文件夹)。清理NuGet缓存,让包源重新扫描
有时候NuGet会缓存旧的包信息,导致新放进去的包不被识别。你可以打开「包管理器控制台」,运行命令:dotnet nuget locals all --clear运行完后重启Visual Studio,再尝试还原包,让NuGet重新扫描你的本地包源。
检查包名和版本的拼写是否完全匹配
仔细看你的错误提示:“找不到Microsoft.DependencyInjections 2.2.0”,但正确的包名是Microsoft.Extensions.DependencyInjection(带Extensions后缀,而且是DependencyInjection单数,不是DependencyInjections复数)!这很可能是问题所在:要么是项目里的依赖引用写错了名称,要么是你下载的包文件名有误。
打开你的项目文件(.csproj),查看<PackageReference>节点,确认依赖的名称是**Microsoft.Extensions.DependencyInjection**,版本是2.2.0,没有拼写错误。手动添加包引用到项目文件
如果NuGet还是没法自动识别本地包,你可以直接编辑.csproj文件,手动添加正确的包引用:<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="2.2.0" />保存文件后,右键项目选择「还原NuGet包」,或者在包管理器控制台运行:
Update-Package -reinstall强制重新安装所有包。
验证下载的nupkg文件完整性
有时候下载的包文件可能损坏,导致NuGet无法读取。你可以重新下载一次Microsoft.Extensions.DependencyInjection 2.2.0的包,替换掉本地源里的旧文件,再尝试还原。
如果是用.NET CLI命令行开发的话,也可以手动指定本地包源来执行还原:
dotnet restore --source "你的本地包源文件夹路径"
内容的提问来源于stack exchange,提问作者sravya malla

