ArchLinux下Rider中.NET项目NuGet包还原失败求助
解决Arch Linux上Rider中.NET NuGet包还原超时问题
刚在Arch Linux上踩过类似的NuGet还原超时坑,给你几个亲测有效的解决步骤:
先排查网络连通性
先排除是网络本身的问题,打开终端执行:curl -v https://api.nuget.org/v3-flatcontainer/microsoft.aspnetcore.webutilities/index.json如果这个命令也超时,说明你的网络无法正常访问NuGet官方源,可以试试这些操作:
- 切换DNS服务器,比如改成Google的8.8.8.8,编辑
/etc/resolv.conf添加nameserver 8.8.8.8 - 检查系统防火墙(比如ufw、firewalld)是否拦截了HTTPS请求,临时关闭防火墙测试:
sudo ufw disable(测试后记得重新开启) - 如果用了代理,确保代理配置正确,终端里可以先设置代理环境变量:
export HTTP_PROXY=http://your-proxy-address:port export HTTPS_PROXY=http://your-proxy-address:port
- 切换DNS服务器,比如改成Google的8.8.8.8,编辑
调整NuGet超时时间
默认的NuGet超时时间可能不够,修改NuGet配置文件延长超时:- 打开
~/.nuget/NuGet/NuGet.Config(没有的话手动创建) - 在
<configuration>节点内添加超时配置:<config> <add key="http_timeout" value="300000" /> <!-- 5分钟,单位毫秒 --> </config>
- 打开
切换到NuGet镜像源
如果官方源访问不稳定,可以换成国内镜像源,比如阿里云:
在NuGet.Config的<packageSources>节点里添加镜像源,注释掉官方源:<packageSources> <!-- <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" /> --> <add key="aliyun" value="https://mirrors.aliyun.com/nuget/v3/index.json" /> </packageSources>用dotnet命令行手动还原
先排除Rider本身的问题,打开终端进入项目目录,执行:dotnet restore如果命令行还原成功,那就是Rider的配置问题:
- 打开Rider的
File > Settings,进入Build, Execution, Deployment > Toolset and Build,确认选中的是系统安装的.NET SDK(可以用dotnet --list-sdks查看已安装的SDK) - 检查Rider的代理设置:
File > Settings > Appearance & Behavior > System Settings > HTTP Proxy,确保代理配置和系统一致
- 打开Rider的
检查Rider的NuGet配置
在Rider的File > Settings > Build, Execution, Deployment > NuGet里:- 确认包源列表里的源是可访问的
- 可以点击
Refresh按钮刷新包源,或者点击Test测试源的连通性
内容的提问来源于stack exchange,提问作者Rickless




