已推送.Net Core C#包至GitHub私有注册表,但其他项目无法访问
解决GitHub私有NuGet包安装401认证错误的步骤
1. 检查GitHub个人访问令牌(PAT)权限
- 确保你的PAT拥有
read:packages权限(推送包需write:packages,安装必须具备读权限) - 重新生成PAT时,勾选
repo、read:packages、write:packages(按需选择),并合理设置有效期
2. 验证NuGet配置文件(nuget.config)正确性
- 确认解决方案根目录的
nuget.config已正确配置GitHub包源,示例格式如下:
<?xml version="1.0" encoding="utf-8"?> <configuration> <packageSources> <add key="GitHub" value="https://nuget.pkg.github.com/你的用户名/index.json" /> </packageSources> <packageSourceCredentials> <GitHub> <add key="Username" value="你的GitHub用户名" /> <add key="ClearTextPassword" value="你的PAT令牌" /> </GitHub> </packageSourceCredentials> </configuration>
- 同时检查全局
nuget.config(路径通常为%appdata%\NuGet\NuGet.Config),确保其中的GitHub源配置与局部配置一致,避免覆盖冲突
3. 清除NuGet缓存
- 在Visual Studio中依次点击「工具」→「NuGet包管理器」→「包管理器设置」→「常规」,点击「清除所有NuGet缓存」
- 或通过命令行执行:
dotnet nuget locals all --clear
4. 重新验证Visual Studio认证状态
- 打开「工具」→「选项」→「NuGet包管理器」→「包源」
- 选中GitHub包源,点击「编辑」,确认用户名和PAT令牌输入正确,点击「验证」按钮重新完成认证
5. 检查包的权限与可见性
- 登录GitHub进入私有包页面,确认当前用户(或组织成员)拥有该包的读取权限
- 若为组织下的包,需确保组织已启用GitHub Packages,且用户被加入有权限的团队
内容的提问来源于stack exchange,提问作者khteh
相关产品推荐
相关产品推荐

