Nuget Push 总是返回 404(未找到)

Lev*_*ira 3 github package nuget

我尝试将 nuget 包发布到我的 GitHub Packages 帐户,但在所有情况下,我都遇到了 404 错误。我已按照 GitHub 网站上的要求进行操作:

nuget source Add -Name "GitHub" -Source "https://nuget.pkg.github.com/[MyAccount]/index.json" -UserName [MyUserName] -Password GH_TOKEN
Run Code Online (Sandbox Code Playgroud)

它给我一个错误,说要添加一个 api 密钥。

所以我创建了一个个人访问令牌并设置了 api 密钥:

nuget setapikey [MY_PAT_TOKEN] -Source "https://nuget.pkg.github.com/[MyAccount]/index.json"
Run Code Online (Sandbox Code Playgroud)

但是当我再次尝试推动时,我有:

“您的请求无法通过 GitHub Packages 服务进行身份验证。请确保您的访问令牌有效并配置了适当的范围。”

所以我创建了另一个具有必要范围的令牌: - 读取:包 - 写入:包 - 删除:包 - 回购

我删除了源和api密钥,并使用新令牌再次开始了上述步骤,但出现404错误,说找不到源。

所以我尝试了很多选择……更改包名、更改源名称和其他一些东西,但结果相同。

所以我在 GitHub 的网站上读到了这个:

“当您发布包时,GitHub Packages 默认使用包名称来确定包含该包的 GitHub 存储库。例如,名为 odata-client 的包将发布到 OWNER/odata-client 存储库。如果您想更改包含包的存储库,或将多个包发布到同一个存储库,您可以在包的 .nuspec 文件的存储库字段中包含指向 GitHub 存储库的 URL。”

由于我使用的是 .NET Core 3.0,所以我更改了 csproj,包括:

<RepositoryUrl>https://nuget.pkg.github.com/[MyAccount]/Common</RepositoryUrl>
<RepositoryType>git</RepositoryType>
Run Code Online (Sandbox Code Playgroud)

但是这次我收到了 400(错误的请求)

我厌倦了上述 url 的一些变化:以 index.json 结尾,不以 index.json 结尾,以 common 结尾,等等......但总是有错误的请求错误。

所以我删除了这个配置并再次尝试:404(未找到)

我不知道该怎么办了。有人可以帮助我吗?我究竟做错了什么?它缺少一些配置?

Vla*_*tov 8

我有同样的问题。对我来说,nuget 包中的 Repository Url 是错误的。我建议您检查 RepositoryUrl 是否已设置,并且它是现有存储库的有效 url。

  • 这也是我的解决方案。当 RepositoryUrl 设置不正确时,错误消息的可怕程度让我感到非常惊讶。 (2认同)