版本与System.Web.Mvc冲突

时间:2015-01-08 14:31:58

标签: c# asp.net-mvc

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

  • SportsStore.Domain - for logic
  • SportsStore.UnitTests - for tests
  • SportsStore.WebUI - 用于视图和控制器

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

Instal-Package Microsoft.Aspnet.Mvc -version 5.0.0.0 -projectname SportsStore.Domain ..等..

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

  

构建“SportsStore.WebUI,Version = 1.0.0.0,Culture = neutral,   PublicKeyToken = null“use”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

无法理解,如何解决

7 个答案:

答案 0 :(得分: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

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

later version than the assembly System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35

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

答案 1 :(得分:10)

我自己遇到了同样的问题,并决定将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

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

答案 2 :(得分:3)

您必须更新Microsoft Asp.NET MVC版本。要做到这一点;

  1. 单击工具并选择“NuGet包管理器”
  2. 选择“管理NuGet程序包管理器控制台”
  3. 搜索Microsoft Asp.NET MVC并进行更新。
  4. 重新启动Visual Studio

答案 3 :(得分:1)

您也可以尝试在web.config中替换此部分中的相应部分。不确定它是否会起作用,但只需2分钟即可完成。

<dependentAssembly>
        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.2.2.0" />
      </dependentAssembly>

答案 4 :(得分:1)

通常,当您升级/安装/卸载MVC软件包时,它取决于任何其他库,例如,我遇到的问题是它取决于与MVC版本5.2.7不兼容的MvcSiteMapProvider。

这是针对此类问题的解决方案

  1. 卸载依赖项库(例如,在我的情况下,我要卸载 MvcSiteMapProvide)
  2. 使用NuGet软件包升级MVC版本

  3. 管理器或控制台。再次安装卸载库(以我为例 再次安装MvcSiteMapProvider)

删除Obj文件夹,清理并生成项目。

答案 5 :(得分:0)

我在同一个项目中遇到此问题并且解决它非常简单,只需单击Build►Clean解决方案,这将删除bin文件夹中的一些文件,之后只需重建您的解决方案。这实际上解决了我的问题。

答案 6 :(得分:0)

转到Prerences中找到System.Web.Mvc,然后将其删除