【问题标题】:.Net Core Nuget Package Version mismatch: Two packages have references to different versions of the same dll.Net Core Nuget 包版本不匹配:两个包引用了同一个 dll 的不同版本
【发布时间】:2019-09-12 14:05:49
【问题描述】:

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

使用身份组装“KII.Web” 'KII.Web,版本=1.0.0.0,文化=中性, PublicKeyToken=null' 使用 'Microsoft.Extensions.Options, 版本=2.2.0.0,文化=中性,PublicKeyToken=adb9793829ddae60' 具有比引用程序集更高的版本 带有标识的“Microsoft.Extensions.Options” 'Microsoft.Extensions.Options,版本=2.1.1.0,文化=中性, PublicKeyToken=adb9793829ddae60' KII.UnitTests
C:\Projects\kii\web\src\Tests\KII.UnitTests\Controllers\HomeControllerTest.cs

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

Assembly 'KII.Web' 使用 'Microsoft.AspNetCore.Mvc.ViewFeatures, Version=2.1.1.0,比引用的程序集版本高 带有标识的“Microsoft.AspNetCore.Mvc.ViewFeatures” 'Microsoft.AspNetCore.Mvc.ViewFeatures,版本=1.0.3.0

基本上网络项目有这个

  • 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 中添加 binding redirects
  • 将 KenticoCloud.Delivery 更新为 11.0.0-beta1

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

Similar SO question

【问题讨论】:

  • 您是否考虑过将您的应用程序降级到 Microsoft.AspNetCore.App 2.1.1 以消除您的问题。
  • @PatrickMcvay 这样做解决了错误,但我有 2 个 dll 错误。另一个仍然存在。程序集“KII.Web”使用“Microsoft.AspNetCore.Mvc.ViewFeatures,版本=2.1.1.0,其版本高于引用的程序集“Microsoft.AspNetCore.Mvc.ViewFeatures”,标识为“Microsoft.AspNetCore.Mvc.ViewFeatures”,版本=1.0.3.0

标签: .net asp.net-core .net-core


【解决方案1】:

对此的解决方案是直接在 Web 项目中安装共享包依赖项Microsoft.AspNetCore.Mvc.ViewFeatures version 2.2.0 之一的最新版本。添加对这个包的直接依赖可以让单元测试项目正确地解析它的依赖。

在 KII.Web.csproj 中添加了这个包依赖

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-13
    • 1970-01-01
    • 2021-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-23
    • 1970-01-01
    相关资源
    最近更新 更多