asp.net-mvc-3 - Moles 在 VS2010 中创建的程序集在安装 VS2012 后引用 MVC3 和 MVC4

标签 asp.net-mvc-3 asp.net-mvc-4 visual-studio-2012 .net-4.5 moles

程序集“dllname.Moles, Version=1.2.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' 更高的版本

针对 .NET4.0 框架的 MVC3 解决方案,以及使用 Moles 框架的单元测试项目,在 Visual Studio 2010 中完美运行。此计算机上未安装 MVC4。

安装 Visual Studio 2012(以及强制性将 .NET4.0 替换为 .NET4.5 并安装 MVC4)后,unittest 项目不再在 VS2010 中编译,它提示给定的错误.

当我们检查程序集时,我们有效地看到它引用了 MVC4 和 MVC3??

  • BoneSoft.CSS,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null
  • itextsharp,Version=5.1.2.0,Culture=neutral,PublicKeyToken=8354ae6d2174ddca
  • Microsoft.ExtendedReflection,Version=0.94.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35
  • Microsoft.Moles.Framework,Version=0.94.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35
  • mscorlib,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089
  • mscorlib,版本=4.0.0.0,文化=中性,PublicKeyToken=b77a5c561934e089
  • NHibernate.Validator,Version=1.3.1.4000,Culture=neutral,PublicKeyToken=70154e18752585bd
  • 系统,版本=2.0.0.0,文化=中性,PublicKeyToken=b77a5c561934e089
  • 系统,版本=4.0.0.0,文化=中性,PublicKeyToken=b77a5c561934e089
  • System.Core,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089
  • System.Data,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089
  • System.Drawing,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a
  • System.Runtime.Caching,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a
  • System.Web,版本=4.0.0.0,文化=中性,PublicKeyToken=b03f5f7f11d50a3a
  • System.Web.Mvc,Version=3.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35
  • System.Web.Mvc,Version=4.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35
  • System.Xml,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089

整个解决方案中从未引用 MVC4,但某处的 Moles 认为在生成引用 MVC3 的程序集的“moles 程序集”时必须包含它。

我还有其他未引用 MVC3 的程序集的 moles 程序集,并且在编译时没有问题。

我已经删除了项目中的 moles 程序集,重建并重新创建了 moles 程序集:同样的错误。

在哪里搜索问题的想法?

最佳答案

当你安装 VS 2012 时,它在盒子上安装了 MVC4。 MVC 3 不能很好地与 MVC 4 SxS 一起工作。您需要更新 MVC 3 应用程序才能在安装了 MVC 4 的机器上工作。
这在 MVC 4.0 的发行说明中有记录。请阅读 Installing ASP.NET MVC 4 breaks ASP.NET MVC 3 RTM applications 部分.遵循设置“必需的更新”。

关于asp.net-mvc-3 - Moles 在 VS2010 中创建的程序集在安装 VS2012 后引用 MVC3 和 MVC4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12514961/

相关文章:

asp.net - ActionLink 404 错误

entity-framework - 未运行 SetInitializer 但 EF 仍在尝试 CreateDatabase

html - 如何在 Visual Studio 之外开发 Windows 8 Metro 风格的 JS 应用程序?

css - Web Essentials 2012 编译空行

asp.net - 使用 Entity Framework 在 asp.net mvc3 中的多个 xml 文档上运行 xpath 查询

c# - 在部分 View 中显示用户角色

asp.net-mvc-3 - MVC3 RenderPartial 和 ViewBag

c# - 在 data-originalvalue 属性中使用时,MVC 4 View Page 中的 Null Reference Exception?

c# - RouteConfig 设置接受可选参数

模拟器中的 Azure 角色不断发生变化?