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

GitHub Actions无法找到GitHub Packages托管的NuGet包

问题描述

我在GitHub组织下维护两个私有仓库:Library和App。Library已通过GitHub Action成功将NuGet包推送到GitHub Packages,本地使用个人访问令牌(PAT)可以正常拉取该包并作为App项目的依赖。但在为App编写构建和单元测试的GitHub Action时,遇到了问题:

已配置NuGet包源步骤:

- name: Set package source
  run: dotnet nuget add source --username USERNAME --password ${{ secrets.GITHUB_TOKEN }} --store-password-in-clear-text --name github "https://nuget.pkg.github.com/REDACTED/index.json"

执行dotnet restore时出现错误:

/home/runner/work/App/App/App.Services/App.Services.csproj : error NU1101:
Unable to find package Library. No packages exist with this id in source(s): github, nuget.org [/home/runner/work/App/App/App.sln]

我知道可以通过新增PAT解决,但出于安全和管理便利,希望依赖默认的GITHUB_TOKEN,且根据GitHub文档,GITHUB_TOKEN默认拥有包的读写权限。

解决方案

1. 显式配置GITHUB_TOKEN的包读取权限

默认GITHUB_TOKEN在跨仓库访问场景下,可能缺乏足够权限。在工作流文件的开头添加权限声明,确保它能读取组织内的Packages:

permissions:
  packages: read

2. 修正NuGet源配置的用户名

GitHub Packages对用户名的要求是非空即可,但硬编码USERNAME可能引发验证问题,建议替换为GitHub提供的内置变量${{ github.actor }}:

- name: Set package source
  run: dotnet nuget add source --username ${{ github.actor }} --password ${{ secrets.GITHUB_TOKEN }} --store-password-in-clear-text --name github "https://nuget.pkg.github.com/REDACTED/index.json"

3. 验证包的推送目标与可见性

  • 确认Library的NuGet包推送到了组织级Packages(而非仅Library仓库级),确保App仓库的GITHUB_TOKEN能访问到该包;
  • 检查App项目中引用的包版本号,确保与已推送至GitHub Packages的版本完全一致。

4. 改用NuGet.config文件配置源(可选)

在App仓库根目录创建NuGet.config,将源配置和凭证整合在一起,简化工作流步骤:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
    <add key="github" value="https://nuget.pkg.github.com/REDACTED/index.json" />
  </packageSources>
  <packageSourceCredentials>
    <github>
      <add key="Username" value="${{ github.actor }}" />
      <add key="ClearTextPassword" value="${{ secrets.GITHUB_TOKEN }}" />
    </github>
  </packageSourceCredentials>
</configuration>

之后工作流中只需直接执行dotnet restore,无需额外的源配置步骤。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 10:24:13