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

ASP.Net Core项目Corp.App构建失败,遭遇NuGet错误NU1106版本冲突

解决ASP.NET Core项目NuGet错误NU1106:包版本冲突

问题根源

你的Corp.App目标框架是**.NET 7**,但依赖链中存在版本冲突:

  • Corp.Package和Corp.Project(无论作为项目引用还是包引用)都要求Microsoft.Extensions.Logging.Abstractions >=8.0.0
  • 项目间接依赖的Microsoft.Extensions.Logging 6.0.0固定绑定Microsoft.Extensions.Logging.Abstractions 6.0.0,该版本与8.0.0不兼容
  • 同时Microsoft.Extensions.DependencyInjection 7.0.0要求Microsoft.Extensions.DependencyInjection.Abstractions >=7.0.0,而Logging.Abstractions 8.0.0依赖DI.Abstractions >=8.0.0,进一步加剧冲突

NuGet无法自动调和这些跨版本的依赖要求,因此抛出NU1106错误。

解决方案

方案1:显式统一冲突包版本(推荐)

在Corp.App.csproj中直接添加冲突包的显式引用,强制NuGet使用指定版本:

<!-- 统一日志抽象包版本为8.0.0 -->
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="8.0.0" />
<!-- 统一DI抽象包版本为8.0.0 -->
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="8.0.0" />
<!-- 同步升级日志核心包到8.0.0,彻底消除版本绑定冲突 -->
<PackageReference Include="Microsoft.Extensions.Logging" Version="8.0.0" />

添加后执行dotnet restore,NuGet会优先使用显式指定的版本,覆盖所有间接依赖的版本要求。

方案2:降级依赖项目/包的日志抽象版本

如果不想使用8.0版本的扩展包,可以将Corp.Package和Corp.Project中的Microsoft.Extensions.Logging.Abstractions版本降级到7.0.0(与.NET7版本对齐):

<!-- 在Corp.Package和Corp.Project的csproj中修改 -->
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="7.0.0" />

这样所有依赖链的版本要求都会统一到7.x系列,避免跨版本冲突。

方案3:升级项目目标框架到.NET 8

如果项目允许升级,可以将Corp.App的目标框架改为.NET 8,此时所有8.0版本的扩展包都是原生兼容的,冲突会自动消失:

<!-- 在Corp.App.csproj中修改 -->
<TargetFramework>net8.0</TargetFramework>

验证步骤

  1. 保存修改后的csproj文件
  2. 执行命令:dotnet clean && dotnet restore
  3. 重新构建项目,确认错误消失

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 05:13:21