现在我读了“ASP.NET MVC 5,Freeman”一书,我创建了3个项目:
使用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
无法理解,如何解决
答案 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版本。要做到这一点;
Microsoft Asp.NET MVC
并进行更新。答案 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。
这是针对此类问题的解决方案
使用NuGet软件包升级MVC版本
管理器或控制台。再次安装卸载库(以我为例 再次安装MvcSiteMapProvider)
删除Obj文件夹,清理并生成项目。
答案 5 :(得分:0)
我在同一个项目中遇到此问题并且解决它非常简单,只需单击Build►Clean解决方案,这将删除bin文件夹中的一些文件,之后只需重建您的解决方案。这实际上解决了我的问题。
答案 6 :(得分:0)
转到Prerences中找到System.Web.Mvc,然后将其删除