【发布时间】: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 包来解决。
【问题讨论】:
-
您是否考虑过将您的应用程序降级到 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