【问题标题】:Nuget Push always returning 404 (Not Found)Nuget Push 总是返回 404(未找到)
【发布时间】:2020-03-25 21:51:48
【问题描述】:

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

nuget source Add -Name "GitHub" -Source "https://nuget.pkg.github.com/[MyAccount]/index.json" -UserName [MyUserName] -Password GH_TOKEN

提示我添加 api 密钥时出错。

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

nuget setapikey [MY_PAT_TOKEN] -Source "https://nuget.pkg.github.com/[MyAccount]/index.json"

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

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

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

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

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

所以我在 GitHub 的网站上读到了这篇文章:

"当你发布一个包时,默认情况下 GitHub Packages 使用 包名称来确定包含 包裹。例如,将发布一个名为 odata-client 的包 到 OWNER/odata-client 存储库。如果你想改变 包含包的存储库,或将多个包发布到 相同的存储库,您可以将 GitHub 存储库的 URL 包含在 包的 .nuspec 文件的存储库字段。”

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

<RepositoryUrl>https://nuget.pkg.github.com/[MyAccount]/Common</RepositoryUrl>
<RepositoryType>git</RepositoryType>

但这次我有一个 400(错误请求)

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

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

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

【问题讨论】:

    标签: github package nuget


    【解决方案1】:

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

    【讨论】:

    • 我想重申一下这个答案!查找任何拼写错误、前导/尾随字符等。
    • 这是我的解决方案,只是重新包装似乎是一个假的解决方案/答案
    • 这也是我的解决方案。当 RepositoryUrl 设置不正确时,错误消息的可怕程度让我感到非常惊讶。
    【解决方案2】:

    我遇到了同样的问题,我的解决方案是授予令牌的所有“回购”权限。 PS:我的仓库是私有的

    【讨论】:

      【解决方案3】:

      我也遇到了同样的问题,并且为此苦苦挣扎。

      我最终使用了您的一些指针 - 添加 到我的 .nuspec 并再次打包项目。 这有助于并推送到 github 工作。

      请尝试再次打包您的项目。

      【讨论】:

      • 嗨,您能分享一下您为使其正常工作所采取的步骤吗?
      猜你喜欢
      • 2013-12-27
      • 2017-09-26
      • 2020-12-12
      • 2012-09-01
      • 2018-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多