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

ASP.NET Core 8.0 Docker构建遇NU1202错误:Common.Logging兼容性问题

解决Docker中.NET 8项目Quartz依赖Common.Logging版本不兼容的NU1202错误

核心问题

你遇到的NU1202错误是因为Quartz 3.13.1的传递依赖被强制拉取了不兼容.NET 8的Common.Logging 1.2.0版本,本地环境因缓存或构建工具的自动冲突处理掩盖了问题,而Docker的干净构建环境直接暴露了依赖冲突。

解决方案

1. 显式指定兼容的Common.Logging版本

在出错的waternav.backend.api.csproj项目中添加对高版本Common.Logging的引用,覆盖传递依赖的旧版本:

<ItemGroup>
  <!-- 使用兼容.NET 8的版本,例如3.4.1 -->
  <PackageReference Include="Common.Logging" Version="3.4.1" />
</ItemGroup>

2. 检查Directory.Packages.props的版本锁定

如果你的解决方案用Directory.Packages.props统一管理包版本,确认其中是否强制指定了Common.Logging的旧版本:

  • 打开Directory.Packages.props,查找<PackageVersion Include="Common.Logging" />条目
  • 将版本修改为兼容.NET 8的版本:
<PackageVersion Include="Common.Logging" Version="3.4.1" />

3. 确保Docker使用正确的.NET 8 SDK镜像

检查Dockerfile中使用的SDK镜像是否为官方.NET 8版本,避免因镜像版本过低导致依赖解析异常:

FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build

4. 清理Docker构建缓存

旧的构建缓存可能残留错误的依赖包,构建时添加--no-cache参数强制重新拉取所有依赖:

docker build --no-cache -t your-api-image .

验证步骤

  1. 保存修改后的csproj或Directory.Packages.props文件
  2. 重新执行Docker构建中的dotnet restore步骤
  3. 确认NU1202错误消失,依赖恢复完成

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 17:52:19