通过程序包管理器控制台解决版本错误(CS1705)

目录

介绍

背景

解决方案示例


介绍

如果解决方案中有多个项目,而一个项目依赖于其他项目,并且版本引入了重大更改,我们有时会遇到包版本冲突,并且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:\... 
 

上述错误可以在使用两个项目的解决方案上产生,即WebApiWebApiTest 

背景

上面的错误表明测试项目和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

猜你喜欢

转载自blog.csdn.net/mzl87/article/details/88806564
今日推荐