asp.net-mvc - ASP.NET mvc安装 Unity.Mvc4,,但无法获得正确的Microsoft.Practices.Unity 版本

  显示原文与译文双语对照的内容
91 1

我试图安装 Unity.Mvc4,但得到了这个错误消息;

无法加载文件或者程序集'microsoft 。实践。统一。Version= 2.1.505.0.Culture=neutral 。PublicKeyToken=31bf3856ad364e35'或者它的某个依赖项。 找到的程序集清单定义与程序集引用不匹配。 ( HRESULT的异常:0 x80131040 )

我拥有的Microsoft.Practices.Unity 版本是 3.0.0.0. 为什么我想要一个旧版本?

时间: 原作者:

148 5

Unity.Mvc4 是一个社区项目,引用了一个较老版本的Unity 。 要使用 Unity.Mvc4,你可以从软件包管理器控制台获得一个旧版本的Unity版本( 有关更多信息,请参见这个 post


Install-Package Microsoft.Practices.Unity -Version <press tab key for autocomplete>



从个人经验:如果你想要或者需要使用新版本的Unity ( 它对版本 3中的MVC和 Web API 有很好的支持),你应该尝试摆脱像 Unity.Mvc4 或者 Unity.WebApi 这样的软件包。 对于老项目( Unity 3不是一个选择),它们是有用的,但是对于新项目,Unity拥有所有你通常需要的。

原作者:
129 1

我也有一个类似的问题 Unity 3 。 我没有安装另一个版本的unity,而是在 web.config 中更改了程序集绑定:


 <dependentAssembly>


 <assemblyIdentity name="Microsoft.Practices.Unity" publicKeyToken="31bf3856ad364e35"/>


 <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.5.0.0"/>


 </dependentAssembly>



...