【发布时间】:2015-09-30 20:39:26
【问题描述】:
我刚刚将我的 ASP.NET MVC/WebApi 项目从 Microsoft.Practices.Unity 3.5.1404 升级到 3.5.1406(通过 nuget,刚刚发布)。之后,我得到了这个编译错误:
错误 CS0012 类型“IUnityContainer”在未引用的程序集中定义。您必须添加对程序集 'Microsoft.Practices.Unity, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' 的引用。
像这样的行:
GlobalConfiguration.Configuration.DependencyResolver =
new Unity.WebApi.UnityDependencyResolver(container);
当然,我指的不是 3.0.0.0,而是 3.5.1.0。所以我的假设是Unity.WebApi 程序集是针对Microsoft.Practices.Unity 程序集的早期版本编译的。从理论上讲,您应该使用程序集重定向来解决这个问题,如下所示:
<dependentAssembly>
<assemblyIdentity name="Microsoft.Practices.Unity" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.5.1.0" newVersion="3.5.1.0" />
</dependentAssembly>
但是,这似乎不起作用。
有什么建议吗?
【问题讨论】:
标签: c# asp.net unity-container