14

在 VS 2012 RTM 中打开并编译我的 VS 2010 .net 4.0 MVC3 项目后,出现以下错误。如何在不升级到 MVC4 的情况下解决此问题?

我并排安装了 VS 2010 和 VS 2012。

错误 1 ​​程序集 'SomeAssembly,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null' 使用 'System.Web.Mvc,Version=4.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35',其版本高于引用的程序集'System.Web.Mvc,版本 = 3.0.0.0,文化 = 中性,PublicKeyToken = 31bf3856ad364e35'

4

5 回答 5

26

要检查的另一件事是您没有测试项目仍在解决方案中引用 mvc3 程序集。这就是我的原因。

于 2013-04-26T17:24:22.620 回答
12

检查您的web.config. system.web/assemblies即使您的项目引用 4.0,也有 3.0 版。

对我来说就是这样。

于 2012-12-01T17:53:53.803 回答
8

转到参考,检查 System.web.mvc 的当前版本(我猜它仍然指向 mvc3)。删除它们并再次添加引用,但这次是 System.Web.Mvc 4.0..!如果您在单个解决方案中使用多个项目,那么.. 例如,您有两个项目 ProjA(MVC4)和 ProjB(仍在 MVC3 中),如果 ProjA 有 ProjB 的引用或使用 ProjB,那么它最有可能给出上述内容提到的错误。您可能必须在两个项目中更改 MVC 版本。

于 2012-08-26T08:08:18.277 回答
2

如果您使用的是 Visual Studio,则可以检查 NuGet 包的更新,无需手动使用 Web.config 即可进行更新。选择工具 -> 库包管理器 -> 管理解决方案的 NuGet 包。通过在左侧面板中选择更新来检查您是否使用最新版本的 MVC,然后在更新列表中查找 MVC 并单击更新。更新完成后,单击构建并构建解决方案。这就是我解决 MVC 和 Fluent Validation NuGet 包之间的问题的方法。它会自动更新 Web.config。

于 2015-08-27T12:51:12.413 回答
0

使用 asp.net 4.5 并有类似的问题。右键单击References并转到Manage NuGet Packages。检查是否有版本过时的软件包的更新。可能会要求覆盖文件,但没关系。

于 2016-09-03T02:50:23.583 回答