You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 7升级至.NET 8后Azure Functions构建服务器编译失败

.NET 8升级后Azure Pipelines构建Azure Functions时依赖包401/404错误解决

问题背景

我有多个基于.NET 7的Azure Functions项目,在Azure Pipelines的vmImage: 'windows-latest'构建服务器上稳定运行一年。近期仅升级到.NET 8后,构建服务器编译失败,但本地编译完全正常。

构建流程

  • 使用.NET 8.0.x SDK
  • 安装NuGet >6.0.0
  • 启用NuGet缓存(包已存在则跳过还原)
  • 执行dotnet restore
  • 执行dotnet build

错误表现

dotnet build阶段失败,系统尝试从Azure Pipeline工件源而非上游nuget.org下载间接依赖包,报错示例:

无法从'https://pkgs.dev.azure.com/MYPROJECT/someguid/_packaging/anotherguid/nuget/v3/flat2/microsoft.netcore.targets/3.0.0/microsoft.netcore.targets.3.0.0.nupkg'下载包'Microsoft.NETCore.Targets.3.0.0'。
响应状态码表示失败:401 (Unauthorized)。

类似报错涉及数十个依赖包,排查后确认401实际应为包不存在的404,权限配置无问题(.NET 7环境下无认证异常)。

已尝试的无效操作

  • 检查工件源配置,已启用从nuget.org上游同步,其他包同步正常且.NET7下运行无异常
  • 手动添加"缺失"依赖到项目,无改善
  • 升级NuGet到6.11版本,问题依旧

验证有效的操作

  • 回退项目目标框架到.NET7.0,构建立即恢复正常

具体升级变更内容

  1. 将项目.csproj中的TargetFramework从net7.0改为net8.0
  2. 更新以下NuGet包(不更新会触发Invalid combination of TargetFramework and AzureFunctionsVersion is set错误):
Microsoft.Extensions.DependencyInjection -> 8.0.1
Microsoft.Azure.Functions.Worker.Extensions.Abstractions -> 1.3.0
Microsoft.Azure.Functions.Worker -> 2.0.0
Microsoft.Azure.Functions.Worker.Extensions.Storage -> 6.6.0
Microsoft.Azure.Functions.Worker.Sdk -> 2.0.0

解决方案建议

1. 调整NuGet源优先级

在dotnet restore命令中显式指定源顺序,让nuget.org优先被查询,避免Azure Artifacts源优先查找不存在的包:

dotnet restore --source https://api.nuget.org/v3/index.json --source https://pkgs.dev.azure.com/MYPROJECT/someguid/_packaging/anotherguid/nuget/v3/index.json

2. 检查Azure Artifacts上游源配置

进入Azure DevOps的工件源配置页面:

  • 确认nuget.org上游源的包版本范围设置为[0.0.0, )(覆盖所有版本)
  • 手动触发上游源同步,针对报错的基础包(如Microsoft.NETCore.Targets.3.0.0)测试同步是否成功

3. 排查依赖树

通过命令查看完整依赖链,确认哪些中间包引入了触发问题的旧版本依赖:

dotnet list package --include-transitive

尝试升级相关中间包,避免引用无法从Azure Artifacts获取的旧版本基础包。

4. 清理构建服务器NuGet缓存

在构建流程中添加缓存清理步骤,避免缓存中的错误源信息干扰:

dotnet nuget locals all --clear

内容的提问来源于stack exchange,提问作者Don

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 06:42:47