You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitHub工作流中dotnet restore无法找到私有GitHub包源的NuGet包

解决GitHub Actions中dotnet restore找不到私有NuGet包的问题

以下是排查和解决NU1101错误的几个关键方向:

  • 验证GITHUB_TOKEN的权限
    默认的GITHUB_TOKEN权限有限,无法访问组织内的私有包仓库。需要在工作流的job中明确添加权限配置:

    jobs:
      build:
        runs-on: ubuntu-latest
        permissions:
          packages: read  # 必须添加该权限以读取私有包
        steps:
          # 其他步骤(如checkout、setup .NET)...
          - name: 添加私有NuGet源
            run: |
              dotnet nuget add source --username 任意用户名 --password ${{ secrets.GITHUB_TOKEN }} --store-password-in-clear-text --name github "https://nuget.pkg.github.com/你的组织名/index.json"
          - name: 还原依赖
            run: dotnet restore
    

    注意:用户名可填任意值,GitHub包认证仅校验密码(即GITHUB_TOKEN)。

  • 确认私有源URL正确性
    检查添加源的URL是否为组织级包仓库地址:https://nuget.pkg.github.com/你的组织名/index.json,不要误写为单个仓库的地址。查看工作流日志中的源添加记录,确认URL无误。

  • 检查包的存在与权限
    登录GitHub组织的Packages页面,确认Comp.Backend.WebAPI.Client包已成功推送,且包的可见性设置为私有,同时当前工作流所在的仓库被授权访问该包。

  • 强制指定restore源
    避免源优先级或默认源覆盖问题,在restore时明确指定两个源:

    dotnet restore --source https://api.nuget.org/v3/index.json --source https://nuget.pkg.github.com/你的组织名/index.json
    
  • 排查自定义PAT的作用域(如果使用的话)
    若你没有使用默认GITHUB_TOKEN而是自定义PAT,需确保该PAT拥有read:packages权限,并且属于有权访问目标包的账户。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 15:20:22