错误 NU***0***:无法找到包 <packageId>。源中不存在具有此 ID 的包:github、nuget.org
error NU***0***: Unable to find package <packageId>. No packages exist with this id in source(s): github, nuget.org
一个使用 public NUGET.ORG 包以及来自我组织的 ownnuget Github 包注册表的项目在本地恢复得很好,但在 Github 行动。这是操作的 yml 的摘录:
name: workflow1
on:
push:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
permissions:
id-token: write
contents: write
packages: write
issues: write
steps:
- name: Check that shit out
uses: actions/checkout@v3
- name: Set that shit up
uses: actions/setup-dotnet@v2
with:
dotnet-version: '6.x.x'
- name: Build that shit
run: |
dotnet nuget add source https://nuget.pkg.github.com/myorg/index.json -n github -u ${{ github.actor }} -p ${{ secrets.GITHUB_TOKEN }} --store-password-in-clear-text
dotnet restore ./project.sln
dotnet build ./project.sln --no-restore --configuration Release --nologo
添加 nuget 源与推荐的相同(有效)here。不幸的是,构建步骤失败并出现这样的错误
error NU***0***: Unable to find package <packageId>. No packages exist with this id in source(s): github, nuget.org
我也尝试过使用专用的 nuget.config 文件,而不是在 运行 上明确添加源。这也失败了,但奇怪的是,甚至没有列出 Github 包注册表。
在其他工作流程中,我还使用 GITHUB_TOKEN 到 publish/write 到 Gihub 包注册表。现在我只需要读取它,但我想权限应该没问题。
有没有想过为什么会一直崩溃?任何帮助表示赞赏!谢谢。
现在自己解决了。发帖于此可能对其他人有用。
在项目根目录创建 nuget.config,包括一个 packageSourceMapping
部分。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<clear />
<add key="nuget" value="https://api.nuget.org/v3/index.json" />
<add key="github" value="https://nuget.pkg.github.com/myOrg/index.json" />
</packageSources>
<packageSourceMapping>
<packageSource key="github">
<package pattern="packageId" />
</packageSource>
<packageSource key="nuget">
<package pattern="*" />
</packageSource>
</packageSourceMapping>
</configuration>
在 GH 操作的执行中更新来源的凭据on-the-fly
name: ci
on:
push:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
permissions:
id-token: write
contents: write
issues: write
steps:
- name: Check that shit out
uses: actions/checkout@v3
- name: Set that shit up
uses: actions/setup-dotnet@v2
with:
dotnet-version: '6.x.x'
- name: Build that shit
run: |
dotnet nuget update source github -u ${{ github.actor }} -p ${{ secrets.READ_GH_PACKAGES_PAT_ORG }} --store-password-in-clear-text
dotnet restore ./project.sln
dotnet build ./project.sln --no-restore --configuration Release --nologo
请注意,在我的情况下,我无法使用 built-in ${{ secrets.GITHUB_TOKEN }}
并且必须自己创建一个,因为包含注册表的存储库是私有的而不是 public。我还必须授权令牌在我的组织内使用。
一个使用 public NUGET.ORG 包以及来自我组织的 ownnuget Github 包注册表的项目在本地恢复得很好,但在 Github 行动。这是操作的 yml 的摘录:
name: workflow1
on:
push:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
permissions:
id-token: write
contents: write
packages: write
issues: write
steps:
- name: Check that shit out
uses: actions/checkout@v3
- name: Set that shit up
uses: actions/setup-dotnet@v2
with:
dotnet-version: '6.x.x'
- name: Build that shit
run: |
dotnet nuget add source https://nuget.pkg.github.com/myorg/index.json -n github -u ${{ github.actor }} -p ${{ secrets.GITHUB_TOKEN }} --store-password-in-clear-text
dotnet restore ./project.sln
dotnet build ./project.sln --no-restore --configuration Release --nologo
添加 nuget 源与推荐的相同(有效)here。不幸的是,构建步骤失败并出现这样的错误
error NU***0***: Unable to find package <packageId>. No packages exist with this id in source(s): github, nuget.org
我也尝试过使用专用的 nuget.config 文件,而不是在 运行 上明确添加源。这也失败了,但奇怪的是,甚至没有列出 Github 包注册表。
在其他工作流程中,我还使用 GITHUB_TOKEN 到 publish/write 到 Gihub 包注册表。现在我只需要读取它,但我想权限应该没问题。
有没有想过为什么会一直崩溃?任何帮助表示赞赏!谢谢。
现在自己解决了。发帖于此可能对其他人有用。
在项目根目录创建 nuget.config,包括一个 packageSourceMapping
部分。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<clear />
<add key="nuget" value="https://api.nuget.org/v3/index.json" />
<add key="github" value="https://nuget.pkg.github.com/myOrg/index.json" />
</packageSources>
<packageSourceMapping>
<packageSource key="github">
<package pattern="packageId" />
</packageSource>
<packageSource key="nuget">
<package pattern="*" />
</packageSource>
</packageSourceMapping>
</configuration>
在 GH 操作的执行中更新来源的凭据on-the-fly
name: ci
on:
push:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
permissions:
id-token: write
contents: write
issues: write
steps:
- name: Check that shit out
uses: actions/checkout@v3
- name: Set that shit up
uses: actions/setup-dotnet@v2
with:
dotnet-version: '6.x.x'
- name: Build that shit
run: |
dotnet nuget update source github -u ${{ github.actor }} -p ${{ secrets.READ_GH_PACKAGES_PAT_ORG }} --store-password-in-clear-text
dotnet restore ./project.sln
dotnet build ./project.sln --no-restore --configuration Release --nologo
请注意,在我的情况下,我无法使用 built-in ${{ secrets.GITHUB_TOKEN }}
并且必须自己创建一个,因为包含注册表的存储库是私有的而不是 public。我还必须授权令牌在我的组织内使用。