Visual Studio 2017更新NuGet包时遇到问题:包还原失败
解决Visual Studio 2017中NuGet包还原失败(Package restore failed)的常见方案
我之前在VS2017里也碰到过这个烦人的问题,折腾了好几种方法才搞定,给你列几个最有效的排查和解决步骤:
检查NuGet源配置
打开VS顶部菜单的「工具」→「NuGet包管理器」→「包管理器设置」→「包源」:- 确保官方NuGet源(
https://api.nuget.org/v3/index.json)处于启用状态,没被误勾选禁用;如果用私有源,检查地址是否正确、是否需要账号密码认证 - 可以先暂时只保留官方源测试,排除私有源的干扰
- 确保官方NuGet源(
清空NuGet缓存
缓存损坏是包还原失败的高频原因,两种清理方式:- 图形界面:「工具」→「NuGet包管理器」→「管理解决方案的NuGet包」→ 右上角的设置图标 → 点击「清空所有NuGet缓存」
- 命令行:打开VS的「开发者命令提示符」,运行命令
nuget locals all -clear
清理完成后重启VS,再尝试还原包
检查项目配置文件
- 如果是用PackageReference格式的项目(新版默认),打开项目的
.csproj文件,检查<PackageReference>节点里的包ID和版本号是否正确,有没有拼写错误或者不存在的版本 - 如果是旧版的
packages.config项目,打开这个文件,查看里面的包条目是否有错误,比如某个包的版本在当前源中找不到,或者ID拼写错了;必要时可以删除错误条目后重新安装
- 如果是用PackageReference格式的项目(新版默认),打开项目的
修复Visual Studio安装
有时候VS的NuGet组件损坏会导致异常,打开「Visual Studio Installer」,选择你的VS2017实例,点击「修改」,找到「NuGet包管理器」组件确保勾选,然后点击「修改」进行修复。修复完成后重启VS再试排查网络和代理问题
- 先确认你的网络能正常访问NuGet官方源,在浏览器打开
https://api.nuget.org/v3/index.json,看是否能正常加载 - 如果公司网络用了代理,需要在VS里配置代理:「工具」→「选项」→「环境」→「Web代理」,填入正确的代理地址和端口
- 先确认你的网络能正常访问NuGet官方源,在浏览器打开
手动安装特定包
如果某个包一直还原失败,可以去NuGet官网找到对应版本的.nupkg文件,手动放到本地NuGet缓存目录(默认路径是C:\Users\[你的用户名]\.nuget\packages),然后重启VS尝试还原
要是以上方法都没效果,可以试试新建一个空白项目,添加相同的NuGet包,看能不能成功还原——这样能快速判断是项目本身的问题,还是VS环境的问题。
内容的提问来源于stack exchange,提问作者user7390857
相关产品推荐
相关产品推荐

