已移除的NuGet源仍导致dotnet restore失败,请求帮助
解决dotnet restore持续请求已移除的Azure DevOps NuGet源凭据问题
问题描述
此前为测试需求在Azure DevOps中创建了一个NuGet包并安装到ProjectA,现在对从未安装过该测试包的ProjectB、ProjectC执行dotnet restore时,系统仍要求提供已完全移除的那个NuGet源的凭据。已尝试清理NuGet缓存、删除项目obj/bin文件夹、删除nuget配置文件、移除无用引用、清理重建项目等操作,问题依旧存在。移除ProjectA中的测试包后ProjectA可正常restore,但ProjectB、ProjectC仍报401未授权错误:
C:\Program Files\dotnet\sdk\8.0.108\NuGet.targets(156,5): error : Unable to load the service index for source https://pkgs.dev.azure.com/xxxxx/_packaging/xxxxx/nuget/v3/index.json. [E:\Users\Haku\source\repos\ProjectB\ProjectB\ProjectB.csproj] C:\Program Files\dotnet\sdk\8.0.108\NuGet.targets(156,5): error : Response status code does not indicate success: 401 (Unauthorized).
解决方案步骤
1. 查看并移除残留的NuGet源
打开命令行执行以下命令,列出所有全局/用户级的NuGet源:
dotnet nuget list source
如果发现目标Azure DevOps源仍存在,执行删除命令:
dotnet nuget remove source <源名称>
也可直接编辑全局NuGet配置文件手动删除对应源节点,文件路径:
- Windows:
%appdata%\NuGet\NuGet.Config - macOS/Linux:
~/.config/NuGet/NuGet.Config
2. 清理Windows凭据管理器中的Azure DevOps凭据
Windows系统中,Azure DevOps的NuGet凭据可能存储在凭据管理器中:
- 打开「控制面板」→「用户账户」→「凭据管理器」→「Windows凭据」
- 搜索包含
pkgs.dev.azure.com或你的Azure DevOps组织名的凭据条目 - 删除所有相关的凭据记录
3. 检查解决方案/目录级的NuGet配置
检查项目所在解决方案根目录或上级目录中是否存在nuget.config文件,这类文件可能覆盖全局配置,手动删除其中的目标源节点。
4. 检查Directory.Build.props/Directory.Build.targets文件
查看项目根目录或上级目录中的Directory.Build.props或Directory.Build.targets文件,确认是否有强制引入该Azure DevOps源的配置,如有则删除对应内容。
5. 彻底清理dotnet本地缓存
执行以下命令清理所有dotnet相关的NuGet本地缓存:
dotnet nuget locals all --clear
6. 临时指定restore源(应急方案)
如果以上步骤仍未解决,可在执行restore时手动指定官方NuGet源绕过问题:
dotnet restore --source https://api.nuget.org/v3/index.json
内容的提问来源于stack exchange,提问作者Hakuryuu
相关产品推荐
相关产品推荐

