Azure Pipeline无法获取NuGet 6,.NET5升级.NET6时nuget restore失败
无法找到NuGet 6的核心原因
Azure DevOps NuGet工具安装器的白名单限制
内置的NuGet工具安装器任务的可用版本列表并非实时同步远端公开的NuGet版本库内容,官方会对可用版本做预审核后加入任务的白名单。早期NuGet 6预览版未被纳入白名单时,即便远端存在对应版本,手动指定也会被任务拦截,返回最高可用版本为5.11的错误。未调用.NET 6 SDK内置的NuGet组件
.NET 6 SDK本身已内置对应版本的NuGet组件,但如果你的流水线使用独立的NuGet.exe restore任务而非dotnet restore命令,任务默认会优先调用系统中独立安装的NuGet.exe,不会主动复用SDK内置的NuGet能力。PATH环境变量优先级问题
即便你已将.NET SDK路径加入PATH,若Azure Pipelines默认的旧版NuGet所在路径在PATH中的排序更靠前,系统仍会优先匹配到旧版本NuGet,无法识别SDK附带的新版本。
可行的解决方法
- 直接替换独立NuGet restore任务为
dotnet restore命令执行还原操作,无需单独安装NuGet工具,即可自动匹配.NET 6 SDK内置的兼容版本NuGet。 - 若必须使用独立NuGet.exe,可通过PowerShell任务手动下载对应版本的NuGet.exe到本地工作目录,再将该目录临时添加到PATH的最前端,后续任务即可调用你指定的新版本。
- 待NuGet 6正式版发布后,可在NuGet工具安装器中指定版本为
6.x,勾选「始终下载最新匹配版本」选项即可自动拉取官方白名单内的最新版本。
内容的提问来源于stack exchange,提问作者Joe Robe
相关产品推荐
相关产品推荐

