程序集“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/