目录
介绍
背景
解决方案示例
介绍如果解决方案中有多个项目,而一个项目依赖于其他项目,并且版本引入了重大更改,我们有时会遇到包版本冲突,并且Visual Studio解决方案无法构建。它可能会返回以下错误:
错误CS1705 Assembly 'WebAPI' with identity 'WebAPI, 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' WebApiTest C:\...
上述错误可以在使用两个项目的解决方案上产生,即WebApi和WebApiTest。
背景上面的错误表明测试项目和API项目使用的是不同版本的Microsoft.AspNetCore.Mvc.Core。例如,测试项目使用的是版本2.1.0.0,而API项目使用的是2.1.1.0。
我们可以通过更新要匹配的任一项目中的包引用来解决此问题。例如,我们可以根据需要更新WebApiTest项目以使用更高版本的程序集(即2.1.1.0)或将WebApi项目中的程序集版本降级到2.1.0.0。
解决方案示例我们可以在目标正确项目的包管理器控制台中发出如下命令。例如,下面的代码将在WebApiTest测试中更新Microsoft.AspNetCore.Mvc.Core的程序集引用,以使用版本2.1.1.0。然后,这将匹配WebApi项目中相同程序集的版本。以下代码
Install-Package Microsoft.AspNetCore.Mvc.Core -Version 2.1.1.0 -ProjectName WebApiTest
如果在Visual Studio的“程序包管理器控制台”窗口中提供的下拉列表中选择了正确的项目,则可以省略参数“ - ProjectName WebApiTest”名称。屏幕截图的示例如下图所示:
图:在Windows机器上运行的Visual Studio 2017中的程序包管理控制台窗口。
同样,要更新WebApi项目,以下命令将执行此操作:
Install-Package Microsoft.AspNetCore.Mvc.Core -Version 2.1.1.0 -ProjectName WebApiTest
原文地址:https://www.codeproject.com/Tips/1280404/Resolve-version-error-CS1705-through-Package-Manag