在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,Version = 3.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'
答案 0 :(得分:25)
要检查的另一件事是你没有一个测试项目仍然引用解决方案中的mvc3程序集。那是什么让我。
答案 1 :(得分:12)
检查web.config
。即使您的项目引用了4.0,system.web/assemblies
也有3.0版。
对我来说就是这样。
答案 2 :(得分:7)
转到参考,检查当前版本的System.web.mvc(我猜它仍然指向mvc3)。删除它们并再次添加引用,但这次System.Web.Mvc 4.0 ..! 如果您在单个解决方案中使用多个项目,那么.. 对于例如你有两个项目ProjA(MVC4)和ProjB(仍在MVC3中), 如果ProjA有ProjB的引用或使用ProjB,那么它最有可能给出上述错误。您可能必须在两个项目中更改MVC版本。
答案 3 :(得分:2)
如果您使用的是Visual Studio,则可以检查NuGet包的更新,这些更新将在不需要手动使用Web.config进行更新的情况下进行更新。选择工具 - >库包管理器 - >管理NuGet包以获得解决方案。通过选择左侧面板上的更新,然后在更新列表中查找MVC和单击更新,检查您是最新版本的MVC。更新完成后,单击构建并构建解决方案。这就是我解决我在MVC和Fluent Validation NuGet包之间遇到的问题的方法。它会自动更新Web.config。
答案 4 :(得分:0)
使用asp.net 4.5并遇到类似问题。 右键单击参考,然后转到管理NuGet包。检查包含过期版本的软件包是否有更新。 可以要求覆盖文件,但没关系。