【发布时间】:2019-06-27 10:34:47
【问题描述】:
我正在尝试为控制器扩展方法编写单元测试,但在测试项目的构建过程中,我收到以下错误消息。
MyControllerExtensionsTests.cs(17, 26): [CS1705] Assembly 'MyApp.RestApi' with identity 'MyApp.RestApi, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' uses 'Microsoft.AspNetCore.Mvc.Core, Version=2.1.1.0, Culture=neutral, PublicKeyToken=adb9793829ddae60' which has a higher version than referenced assembly 'Microsoft.AspNetCore.Mvc.Core' with identity 'Microsoft.AspNetCore.Mvc.Core, Version=2.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'
两个项目都在其.csproj 文件中声明<TargetFramework>netcoreapp2.1</TargetFramework>。我试过删除bin 和obj 文件夹。一个项目如何解析为Mvc.Core, Version=2.1.0.0 和另一个Mvc.Core, Version 2.1.1.0?
【问题讨论】:
-
能不能把
.csproj里的RuntimeFrameworkVersion标签里的版本改一下看看? -
@karthickj25 不,问题不在于框架版本
-
实际问题是您在项目中使用的 NuGet 包。一个针对 2.1.1,另一个针对 2.1.0
-
@CamiloTerevinto,
<PackageReference Include="Microsoft.AspNetCore.App" />中缺少Version属性,它以某种方式自动解析为2.1.0。通过 Nuget 将包升级到2.1.1并没有设置版本属性,导致版本保持在2.1.0。在.csproj中手动设置版本解决了这个问题。
标签: c# asp.net-web-api .net-core