目前,我有一个带有2个nuget包的ASPNet.Core Web应用程序,这些nuget包引用了同一dll的不同版本。Web项目工作正常,但是当我在Unit Testing
项目中向Web
项目添加引用时,出现此编译错误。显然可以解决这些dll差异,因为Web项目可以毫无问题地进行编译。只有当我添加对Web项目的引用以添加测试时,才发生以下编译错误,并且仅在单元测试项目中发生。
标识为“ KII.Web,版本= 1.0.0.0,文化=中性,PublicKeyToken =空”的程序集“ KII.Web”使用'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
此外,我在单元测试项目中也有此构建错误。
程序集“ KII.Web”使用“ Microsoft.AspNetCore.Mvc.ViewFeatures,版本= 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
我尝试过的事情
11.0.0-beta1
由于这是.net核心,因此hintpaths
我无法对其进行调整web.config
。我不认为要检查GAC的旧版本/更新它是否起作用,因为.net核心不使用GAC。由于所讨论的dll是nuget软件包的子依赖项,因此我无法更新nuget软件包进行解析。
解决方案是直接Microsoft.AspNetCore.Mvc.ViewFeatures version 2.2.0
在Web项目中安装共享软件包依赖项之一的最新版本。在此包上添加直接依赖项可以使单元测试项目正确地解决其依赖项。
在KII.Web.csproj中添加了此程序包依赖性
<PackageReference Include="Microsoft.AspNetCore.Mvc.ViewFeatures" Version="2.2.0" />
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句