【问题标题】:Assembly 'SomeAssembly, uses 'System.Web.Mvc, Version=4.0.0.0, which has a higher version than referenced assembly 'System.Web.Mvc, Version 3.0.0.0程序集 'SomeAssembly,使用 'System.Web.Mvc,版本 = 4.0.0.0,其版本高于引用的程序集 'System.Web.Mvc,版本 3.0.0.0
【发布时间】:2012-08-20 12:27:22
【问题描述】:

在 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'

【问题讨论】:

标签: c# asp.net-mvc asp.net-mvc-3 visual-studio-2010 visual-studio-2012


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 这是我的情况,参考没有更新,因为它是手动添加的,将带有 Nuget 的包安装到测试项目中修复了它。谢谢
      • 也是我的问题。
      【解决方案4】:

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

      对我来说就是这样。

      【讨论】:

        【解决方案5】:

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

        【讨论】:

        • 默认情况下将其切换为 mvc 4.0 dll,我在 csproj 文件和 web.config 中手动将其更改为 4.0。没有帮助。
        • 这是为我做的。该消息含糊不清,并没有告诉您错误在引用的项目中。
        • 这对我也有用,我用 Nuget 升级了我的 ASP.NET MVC 并且它有效。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-23
        • 2018-09-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多