版本与System.Web.Mvc冲突

Dim*_*zyr 9 c# asp.net-mvc

现在我读了"ASP.NET MVC 5,Freeman"一书,我创建了3个项目:

  • SportsStore.Domain - 用于逻辑
  • SportsStore.UnitTests - 用于测试
  • SportsStore.WebUI - 用于视图和控制器

使用NuGet命令行我安装了很多软件包,如书中所示:

安装包Microsoft.Aspnet.Mvc -version 5.0.0.0 -projectname SportsStore.Domain ..等..

但我认为我安装错了,因为现在我有错误:

构建"SportsStore.WebUI,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null"使用比程序集更高版本的"System.Web.Mvc,Version = 5.2.2.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35" System.Web.Mvc,Version = 5.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35",引用c:\ Users \Дима\ Documents\Visual Studio 2013\Projects\SportsStore\SportsStore.WebUI\bin\SportsStore .WebUI.dll SportsStore.UnitTests

无法理解,如何解决它

小智 11

我自己遇到了这个完全相同的问题,并决定将Microsoft.Aspnet.Mvc的版本更新为WebUI项目中定义的相同版本.它为我做了伎俩,我想我会分享.

所以在Package Manager Console中,我跑了:

Update-Package Microsoft.Aspnet.Mvc -version 5.2.3 -projectname SportsStore.Domain
Update-Package Microsoft.Aspnet.Mvc -version 5.2.3 -projectname SportsStore.UnitTests
Run Code Online (Sandbox Code Playgroud)

注意:撰写本文时我的版本是5.2.3.你在上面说你的是5.2.2,所以请改用它.


tho*_*kia 10

如果您知道如何阅读它,则构建中的错误消息将以明确的术语解释该问题.

首先告诉您WebUI项目使用5.2.2.0:

SportsStore.WebUI, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null use System.Web.Mvc, Version=5.2.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
Run Code Online (Sandbox Code Playgroud)

然后它会告诉您其中一个项目引用了不同的版本:

later version than the assembly System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
Run Code Online (Sandbox Code Playgroud)

由于您在问题中声明在域项目中安装了5.0.0.0,因此需要从项目中删除该版本,并安装正确的版本(在本例中为5.2.2.0)