Я только что обновил свой проект 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>
Однако это не работает.
Любые предложения?