Ken*_*ith 22 c# asp.net unity-container
我刚刚将我的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);
Run Code Online (Sandbox Code Playgroud)
当然,我没有引用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>
Run Code Online (Sandbox Code Playgroud)
但是,这似乎不起作用.
有什么建议?
Rob*_*och 23
对于如何从Unity 3.5.1升级到4.0.1,这可能是一个更新的答案.
类型"IUnityContainer"在未引用的程序集中定义.您必须添加对程序集"Microsoft.Practices.Unity,Version = 3.5.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35"的引用.
通过Package Manager Console或NuGet:
码:
Ken*_*ith 12
好吧,现在这可能是多余的,但问题显然与Unity 3.5.1406有关,因为它已被拆除,并被Unity 4.0取代.我还替换了几年前未更新的较旧的,显然不受支持的Unity.WebApi库,并将其替换为较新的,显然支持的Unity.AspNet.WebApi库.这在NuGet中有点棘手,因为搜索"Unity WebApi"会返回列表顶部的旧库,并将较新的库隐藏在第一页底部.
在所有这一切之间,它现在有效,没有发现任何问题.