Mac环境VSCode中修复NuGet访问私有Azure源的NU1301错误
问题:Mac上VSCode搭建.NET项目无法访问Azure私有NuGet源(错误NU1301)
在Mac上使用VSCode搭建.NET项目时,构建持续失败,定位后确认是无法访问存储依赖包的Azure私有仓库。最初“找不到包”的问题通过创建nuget.config并添加源解决,但仍存在访问错误。已修复Azure账号权限问题,目前能在浏览器直接访问包的JSON文件,但构建项目时仍报错:error NU1301: Unable to load the service index for source。
已完成的排查步骤
- 确认VSCode登录账号与Azure登录账号一致
- 在Azure创建PAT并添加到
nuget.config文件(配置代码见下文) - 删除
~/.local/share/nuget路径下的NuGet缓存 - 确认Mac环境下VSCode缺少Visual Studio的NuGet管理工具,且原生NuGet CLI为.exe格式无法直接运行
当前使用的nuget.config配置
<?xml version="1.0" encoding="utf-8"?> <configuration> <packageSources> <clear /> <!-- (optional) this is for clear sources like default Offline repo --> <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" /> <add key="[myKey]" value="https://url..." protocolVersion="3" /> </packageSources> <packageSourceCredentials> <MyPrivateFeed> <add key="Username" value="[myUsernameForThePAT]" /> <add key="ClearTextPassword" value="[myPAT]" /> </MyPrivateFeed> </packageSourceCredentials> </configuration>
后续解决建议
1. 核对源名称与凭证节点的一致性
packageSources中定义的私有源key="[myKey]"必须和packageSourceCredentials下的节点名称MyPrivateFeed完全匹配(包括大小写),否则NuGet无法将凭证与对应源关联。
2. 安装Mac兼容的NuGet CLI
通过.NET工具链安装跨平台版NuGet CLI,执行命令:
dotnet tool install -g nuget
安装完成后,使用nuget restore命令手动测试源访问,观察是否能正常拉取私有包,以此排查是否是VSCode集成的NuGet工具问题。
3. 检查系统代理与SSL证书
- 若Mac开启了全局代理,尝试关闭后重新构建,代理可能拦截NuGet对Azure源的请求
- 如果Azure私有源使用自签名SSL证书,需将证书导入Mac系统钥匙串,并设置为“始终信任”,避免NuGet因证书验证失败拒绝访问
4. 验证PAT权限与有效性
- 确认Azure生成的PAT拥有
Packaging Read权限,且未过期 - 可在Azure DevOps的PAT管理页面重新生成权限范围更明确的令牌,仅保留必要的包读取权限
5. 明确指定nuget.config路径
构建时通过命令行手动指定配置文件路径,避免VSCode加载全局配置导致冲突:
dotnet build --configfile ./nuget.config
6. 检查.NET SDK版本兼容性
确保本地安装的.NET SDK版本与项目要求一致,部分旧版SDK对NuGet V3源的支持存在缺陷,尝试升级到最新稳定版SDK。
内容的提问来源于stack exchange,提问作者DA2.
相关产品推荐
相关产品推荐

