You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

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
      
  • 调整NuGet超时时间
    默认的NuGet超时时间可能不够,修改NuGet配置文件延长超时:

    1. 打开~/.nuget/NuGet/NuGet.Config(没有的话手动创建)
    2. <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的NuGet配置
    在Rider的File > Settings > Build, Execution, Deployment > NuGet里:

    • 确认包源列表里的源是可访问的
    • 可以点击Refresh按钮刷新包源,或者点击Test测试源的连通性

内容的提问来源于stack exchange,提问作者Rickless

火山引擎 最新活动