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

Azure DevOps CI部署失败:找不到System.Text.Json 8.0.0.4版本

修复Azure DevOps部署.NET6 WebApp时的NETSDK1060错误

问题拆解

部署报错核心是DevOps用.NET9 SDK构建.NET6项目时,依赖解析出现异常:找不到System.Text.Json 8.0.0.4,但本地project.assets.json中并无该版本依赖。旧预演槽部署失败是因为槽内残留了损坏的缓存文件,新槽位环境干净所以能正常部署。

具体修复步骤

1. 强制Pipeline使用.NET6 SDK构建

避免DevOps自动选用高版本SDK(如.NET9)构建.NET6项目,直接在Pipeline YAML中添加配置:

steps:
- task: UseDotNet@2
  inputs:
    packageType: 'sdk'
    version: '6.x'
    installationPath: $(Agent.ToolsDirectory)/dotnet

2. 清理构建环节的缓存

每次构建前清除旧的构建产物和缓存,避免残留依赖干扰:

- script: |
    dotnet clean
    rm -rf $(Build.SourcesDirectory)/obj
    rm -rf $(Build.SourcesDirectory)/bin
  displayName: 'Clean build artifacts'

3. 清空旧预演槽的残留文件

旧槽位的C:\home\site\repository\obj和wwwroot目录存在损坏文件,必须清理:

  • 登录Azure Portal,进入该预演槽的高级工具(Kudu),打开CMD终端,删除这两个目录下的所有文件
  • 或通过Azure CLI命令清理(需提前配置资源权限):
az webapp deployment source delete --name <你的WebApp名称> --resource-group <资源组名称> --slot <预演槽位名称>

4. 显式锁定System.Text.Json版本

尽管未直接引用该包,但Azure相关NuGet包可能拉取了不兼容的高版本,在项目.csproj文件中添加显式引用,锁定兼容.NET6的版本:

<ItemGroup>
  <PackageReference Include="System.Text.Json" Version="6.0.7" />
</ItemGroup>

5. 本地重新生成依赖文件后推送

本地执行以下命令,确保依赖文件基于.NET6环境生成,再推送到DevOps仓库:

dotnet restore --force
dotnet build

验证

修改完成后手动触发Pipeline部署到旧预演槽位,检查部署日志是否无NETSDK1060错误,确认WebApp能正常启动。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 02:13:22