从GitHub Package Registry安装NuGet软件包

时间:2020-07-09 09:14:06

标签: nuget-package github-package-registry

经过反复的尝试,我最终通过以下操作/命令将我的NuGet软件包保存在Github软件包注册表中:

  1. 转到GitHub
    • 单击您的头像(右上角)→设置→开发人员设置→个人访问令牌
    • 生成具有以下范围的令牌:write:packagesread:packagesdelete:packages
    • 这将自动检查OAuth令牌的repo范围
  2. 打开cmd
    • 导航到项目目录或包含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中收到以下错误:

Error occurs while browsing for packages from custom GitHub source in NuGet package manager

[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提要中,不是吗?

我在做什么错了?

1 个答案:

答案 0 :(得分:1)