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

ASP.NET Core发布应用TraceUpload依赖版本未更新问题求助

解决ASP.NET Core发布时TraceUpload包依赖System.Text.Json版本未更新的问题

1. 排查TraceUpload的依赖声明

先确认TraceUpload包本身的依赖约束:

  • 打开项目根目录下的obj/project.assets.json,搜索TraceUpload和System.Text.Json,查看它是否强制指定了6.0.4版本(比如依赖范围写的是[6.0.4])。
  • 如果TraceUpload有更新版本,优先升级到兼容System.Text.Json 9.0.0的版本,这是最彻底的解决方式。

2. 强制锁定依赖版本

在项目的.csproj文件中添加配置,强制所有依赖链使用System.Text.Json 9.0.0:

<ItemGroup>
  <!-- 直接引用并锁定目标版本 -->
  <PackageReference Include="System.Text.Json" Version="9.0.0" />
  
  <!-- 若TraceUpload是直接依赖,通过VersionOverrides覆盖其内部依赖 -->
  <PackageReference Include="TraceUpload" Version="你的TraceUpload版本号">
    <VersionOverrides>
      <PackageReference Include="System.Text.Json" Version="9.0.0" />
    </VersionOverrides>
  </PackageReference>
</ItemGroup>

也可以全局配置依赖版本策略,强制使用最高兼容版本:

<PropertyGroup>
  <DependencyVersion>Highest</DependencyVersion>
</PropertyGroup>

3. 清理缓存并重建项目

旧缓存可能导致依赖解析异常,执行以下操作:

  • 删除项目的bin和obj文件夹
  • 终端运行 dotnet clean 清理项目
  • 运行 dotnet restore --force 强制重新拉取依赖
  • 重新发布:dotnet publish -c Release

4. 检查发布配置

如果用Visual Studio发布,检查.pubxml发布配置文件:

  • 确保没有硬编码依赖版本的配置项
  • 添加或修改以下配置,避免使用默认依赖清单锁定版本:
<PropertyGroup>
  <PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest>
</PropertyGroup>

5. 清理NuGet全局缓存

若本地缓存留存了旧版本依赖,可能被错误引用:

  • 运行 dotnet nuget locals all --clear 清理所有NuGet本地缓存
  • 再次执行 dotnet restore 重新获取依赖

6. 追踪间接依赖链

如果TraceUpload是通过其他包间接引入的,用以下命令查看完整依赖链,定位强制引入旧版本的源头:

dotnet list package --include-transitive

找到对应包后,要么升级该包版本,要么同样通过.csproj的VersionOverrides覆盖其依赖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 11:57:43