繁体   English   中英

.Net Core Nuget包版本不匹配:两个包引用了同一个dll的不同版本

[英].Net Core Nuget Package Version mismatch: Two packages have references to different versions of the same dll

目前我有一个ASPNet.Core Web应用程序,其中包含2个nuget包,它们引用了同一个dll的不同版本。 Web项目工作正常,但是当我将Unit Testing项目中的引用添加到Web项目时,我得到了这个编译错误。 有些东西显然正在解决这些dll差异,因为web项目编译没有问题。 只有当我添加对Web项目的引用以添加测试时,才会发生以下编译错误,并且仅在单元测试项目中。

具有标识'KII.Web,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'的汇编'KII.Web'使用'Microsoft.Extensions.Options,Version = 2.2.0.0,Culture = neutral,PublicKeyToken = adb9793829ddae60',版本高于引用的程序集“Microsoft.Extensions.Options”,其标识为“Microsoft.Extensions.Options,Version = 2.1.1.0,Culture = neutral,PublicKeyToken = adb9793829ddae60'KII.UnitTests
C:\\项目\\ KII \\网络\\ SRC \\测试\\ KII.UnitTests \\控制器\\ HomeControllerTest.cs

另外,我在单元测试项目中也有这个构建错误。

程序集“KII.Web”使用“Microsoft.AspNetCore.Mvc.ViewFeatures,Version = 2.1.1.0,其版本高于引用程序集”Microsoft.AspNetCore.Mvc.ViewFeatures“,其标识为”Microsoft.AspNetCore.Mvc.ViewFeatures“,版本= 1.0.3.0

基本上,Web项目就是这样

  • Microsoft.AspNetCore.App 2.2.0引用了Microsoft.Extensions.Options 2.2.0
  • KenticoCloud.Delivery 10.0.1引用了Microsoft.Extensions.Options 2.1.1

我尝试过的事情

  • 清洁/重建
  • 手动删除bin目录
  • 在单元测试和Web项目中的app.configs中添加绑定重定向
  • 将KenticoCloud.Delivery更新为11.0.0-beta1

由于这是.net核心,因此我没有在web.config调整的hintpaths 我不认为检查旧版本的GAC /更新它是否会起作用,因为.net核心不使用GAC。 由于有问题的dll是nuget包的子依赖,我无法更新nuget包来解决。

类似的问题

解决方案是在Web项目中直接安装最新版本的共享包依赖项Microsoft.AspNetCore.Mvc.ViewFeatures version 2.2.0 在此包上添加直接依赖项允许单元测试项目正确解析其依赖项。

在KII.Web.csproj中添加了此包依赖项

<PackageReference Include="Microsoft.AspNetCore.Mvc.ViewFeatures" Version="2.2.0" />

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM