经过大量试验和错误后,我最终通过以下操作/命令在 Github 包注册表上获得了我的 NuGet 包:
- 去 GitHub
- 单击您的头像(右上角)→设置→开发人员设置→个人访问令牌
- 生成具有以下范围的令牌:
write:packages
,read:packages
,delete:packages
- 这将自动检查
repo
您的 OAuth 令牌的范围
- 打开命令
- 导航到您的项目目录或包含 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 包,所以现在我想安装它。
- 我创建了一个新项目 → 管理 NuGet 包 → 设置
- 添加包源:
现在我应该可以安装我的包了。但是当我选择我的源并浏览包时,会弹出一个 GitHub 登录窗口。即使我使用我的用户帐户凭据登录,我仍然无法访问我的包(推送到组织 Github)。现在,当我将 NuGet 包管理器用于我的自定义包源时,我总是在以下位置收到以下错误Output Window
:
[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 提要中,不是吗?
我究竟做错了什么?