目前我有一个ASPNet.Core Web应用程序,其中包含2个NuGet软件包,这些软件包引用了同一dll的不同版本。Web项目正常工作,但是当我在“单元测试”项目中添加对“Web”项目的引用时,会出现编译错误。显然有些东西解决了这些dll差异,因为Web项目可以编译而没有问题。只有当我添加对Web项目以添加测试时,才会发生下面的编译错误,并且只在单元测试项目中。
程序集“KII.Web”具有标识 “KII.Web,Version=1.0.0.0,Culture=neutral, PublicKeyToken=null”,使用了版本为 “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:\Projects\kii\web\src\Tests\KII.UnitTests\Controllers\HomeControllerTest.cs
此外,我还在单元测试项目中遇到了构建错误。
程序集 'KII.Web' 使用了版本为 '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 中添加 binding redirects
- 将 KenticoCloud.Delivery 更新到
11.0.0-beta1
web.config
中调整任何hintpaths
。我认为检查GAC是否存在旧版本/更新它不会起作用,因为.net core不使用GAC。由于有问题的dll是nuget包的子依赖项,我无法更新nuget包以解决问题。