从GitHub软件包注册表安装NuGet软件包

5
经过多次尝试,我最终使用以下操作/命令将我的NuGet包放在了Github包注册表中:
1. 前往GitHub - 点击您的头像(右上角)→ 设置 → 开发人员设置 → 个人访问令牌 - 生成一个具有以下范围的令牌:write:packages、read:packages、delete: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 包管理器进行自定义包源时,我总是在 输出窗口 中收到以下错误:

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
你解决了吗?我也遇到了同样的问题。 - JobaDiniz
3个回答


0

首先,请确保您在nuget.config文件中的凭据信息是正确的。

如果您想为PC上的所有项目配置此github软件包源,则应在全局nuget.config文件中进行配置。

请将文件内容添加到C:\Users\xxx(当前用户)\AppData\Roaming\NuGet\NuGet.Config中。

重新启动VS实例或重新启动PC以启用此新的nuget.config文件。它是由此设计的。


-1

每当 Visual Studio 要求您输入 GitHub 用户名和密码时,请使用 API 密钥代替密码。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接