尝试将包推送到 nuget.org 时收到 403

问题描述 投票:0回答:3

我一直在关注 How to Publish a Package to nuget.org gallery 上的文档,但我一直收到 403 禁止消息。

我已完成以下步骤:

  1. 浏览到我在 nuget.org 中的帐户。

  2. 点击我的名字 -> API 密钥

  3. 创建了一个 API 密钥,如下所示:

  4. 我已经有一个 .nupkg 文件,所以现在我尝试:

$ nuget.exe push .\Test.1.2.3.nupkg -Source https://api.nuget.org/v3/index.json -Apikey <apikey>

我不断得到:

Pushing Test.1.2.3.nupkg to 'https://www.nuget.org/api/v2/package'...
  PUT https://www.nuget.org/api/v2/package/
  Forbidden https://www.nuget.org/api/v2/package/ 2238ms
Response status code does not indicate success: 403 (The specified API key is invalid, has expired, or does not have permission to access the specified package.).

这是为什么??

visual-studio msbuild nuget
3个回答
0
投票

我遇到了同样的问题,这就是我解决这个问题的方法,我已经在 DotNet Framework 上尝试过这个

使用

nuget spec
构建项目后,会生成
Nuspec
文件,请尝试将 Nuspec 文件名保留为 Unique,您可以打开
Nuspec
文件并对其进行编辑

enter image description here

使用

nuget pack <project-name>.nuspec
生成Nuget包,这将生成Nuget包(注意:Nuget包名称将根据Nuspec文件中可用的ID生成)

现在您可以使用

dotnet nuget push <nuget package name> --api-key <api-key> --source https://api.nuget.org/v3/index.json

推送 Nuget 包

0
投票

进入工具-->Nuget包管理器-->包管理器设置-->进入包源并删除所有现有的包源。

单击右上角的加号按钮,在源中添加最新的 Api 密钥,然后单击更新按钮。 您可以在以下网址轻松获取 Api 密钥:

https://learn.microsoft.com/en-us/nuget/api/overview

这对我有用。


-1
投票

错误消息显示“指定的 API 密钥无效、已过期或无权访问指定的包。”

您可以查看此链接

如果您使用刚刚创建的有效 API 密钥,则此消息表示存在命名冲突,从错误的“权限”部分来看,这一点并不完全清楚。更改包标识符,重建项目,重新创建 .nupkg 文件,然后重试推送命令。

希望能解决您的问题。

© www.soinside.com 2019 - 2024. All rights reserved.