我刚刚通过 nuget 把我的 ASP.NET MVC/WebApi 项目从 Microsoft.Practices.Unity 3.5.1404 升级到了 3.5.1406 版本。然后,我遇到了这个编译错误:
Error 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>
然而,似乎那并不起作用。
有什么建议吗?