3

经过大量试验和错误后,我最终通过以下操作/命令在 Github 包注册表上获得了我的 NuGet 包:

  1. 去 GitHub
    • 单击您的头像(右上角)→设置→开发人员设置→个人访问令牌
    • 生成具有以下范围的令牌:write:packages, read:packages,delete:packages
    • 这将自动检查repo您的 OAuth 令牌的范围
  2. 打开命令
    • 导航到您的项目目录或包含 NuGet 包的目录
    • 添加新的 nuget 源
      • dotnet nuget add source --username [GithubUserName] --password [YourApiKey] --name github https://nuget.pkg.github.com/[UsernameOrOrganizationName]/index.json
    • 将包推送到github
      • dotnet nuget push --source github bin\Release\MyAwesomePackage.1.0.0.nupkg

我可以在 GitHub 上看到我的 NuGet 包,所以现在我想安装它。

  1. 我创建了一个新项目 → 管理 NuGet 包 → 设置
  2. 添加包源:

现在我应该可以安装我的包了。但是当我选择我的源并浏览包时,会弹出一个 GitHub 登录窗口。即使我使用我的用户帐户凭据登录,我仍然无法访问我的包(推送到组织 Github)。现在,当我将 NuGet 包管理器用于我的自定义包源时,我总是在以下位置收到以下错误Output Window

在 NuGet 包管理器中从自定义 GitHub 源浏览包时出错

[source-name] Failed to retrieve metadata from source 'https://nuget.pkg.github.com/[UsernameOrOrganizationname]/query?q=&skip=0&take=26&prerelease=true&semVerLevel=2.0.0'.
  Response status code does not indicate success: 401 (Unauthorized).

推送到 GitHub 注册表的包应该是公开的,即使使用我的用户帐户,我也无法访问它们进行安装。但是它们出现在我组织的 GitHub 页面上。此外,其他用户不必添加我的个人 GitHub 包源,而是该包应该出现在包管理器内的某个全局 GitHub 提要中,不是吗?

我究竟做错了什么?

4

2 回答 2

1

看来现在还不可能:https ://github.community/t/download-from-github-package-registry-without-authentication/14407/39

于 2020-07-09T17:56:27.863 回答
0

首先,确保您的凭证信息在nuget.config文件中正确无误。

如果你想为你 PC 上的所有项目配置这个 github 包源,你应该在全局nuget.config文件中配置它。

请将您的文件内容添加到C:\Users\xxx(current user)\AppData\Roaming\NuGet\NuGet.Config

重新启动 VS 实例或重新启动 PC 以启用这个新的 nuget.config 文件。它就是这样设计的。

于 2022-03-01T04:46:27.117 回答