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

Nuget提示‘Unable to satisfy conflicting requests’但版本一致,冲突原因何在?

NuGet还原错误NU1106:Microsoft.Extensions.Caching.Abstractions冲突排查

问题场景

在macOS系统使用6.0.403版本的dotnet cli执行dotnet restore时,针对IntegrationTests.csproj遇到NU1106错误。所有依赖对Microsoft.Extensions.Caching.Abstractions的要求均为>=6.0.0,但仍提示无法满足冲突请求。错误详情如下:

/Users/code/legacy/LEAF/IntegrationTests/IntegrationTests.csproj : error NU1106: Unable to satisfy conflicting requests for 'Microsoft.Extensions.Caching.Abstractions': Microsoft.Extensions.Caching.Abstractions (>= 6.0.0) (via project/LEAF.DistributedCache.NATS 1.2.0), Microsoft.Extensions.Caching.Abstractions (>= 6.0.0) (via project/LEAF.Components.Services.Registration.NATS 1.1.0), Microsoft.Extensions.Caching.Abstractions (>= 6.0.0) (via package/LEAF.Components.Services.Registration.Contract 1.0.0), Microsoft.Extensions.Caching.Abstractions (>= 6.0.0) (via package/Microsoft.Extensions.Caching.Memory 6.0.1) ... Framework: (.NETCoreApp,Version=v6.0)

可能的冲突原因

  • 隐式版本上限约束:部分依赖包(如LEAF系列内部包)可能在自身依赖中限制了Microsoft.Extensions.Caching.Abstractions的版本不能超过某个6.x子版本,或依赖了与该抽象包版本强绑定的组件。
  • NuGet缓存损坏:本地缓存中的包版本信息不一致,导致还原时无法正确解析依赖链。
  • 传递依赖版本不兼容:LEAF相关项目可能引用了其他组件的不同版本,间接导致该抽象包的版本无法统一。
  • 框架匹配限制:部分依赖包对该抽象包可能有更具体的.NET 6 runtime版本要求,表面的>=6.0.0无法覆盖实际约束。

解决步骤

  • 清理本地NuGet缓存,重新执行还原:
    dotnet nuget locals all --clear
    dotnet restore
    
  • 查看完整依赖树,定位隐藏的版本约束:
    dotnet list IntegrationTests.csproj package --include-transitive
    
  • 在IntegrationTests.csproj中显式指定该包的版本,强制统一:
    <ItemGroup>
      <PackageReference Include="Microsoft.Extensions.Caching.Abstractions" Version="6.0.1" />
    </ItemGroup>
    
  • 检查LEAF系列内部包的依赖配置,确认是否存在硬编码的版本限制。
  • 更新相关依赖包,如将Microsoft.Extensions.Caching.Memory升级到.NET 6对应的最新子版本(如6.0.23),再尝试还原。

内容的提问来源于stack exchange,提问作者D. Reagan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 22:45:45