调用DependencyResolver.SetResolver时的EntryPointNotFoundException(新的UnityDependencyResolver(Container));

时间:2013-12-06 13:38:16

标签: c# asp.net-mvc asp.net-mvc-4 unity-container

我有一个MVC项目,我使用IHttpControllerActivator在我的WebAPI控制器中做了很长时间的DI。

configuration.Services.Replace(
                typeof(IHttpControllerActivator),
                new UnityCompositionRoot(Container));

现在我需要在MVC控制器中使用DI,所以尝试在Unity.MVC项目中添加这一行。

DependencyResolver.SetResolver(new UnityDependencyResolver(Container));

但是在尝试使用以下堆栈跟踪设置解析器时,我得到了一个EntryPointNotFound异常。

   at System.Web.Mvc.DependencyResolver.CacheDependencyResolver..ctor(IDependencyResolver resolver)
   at System.Web.Mvc.DependencyResolver.InnerSetResolver(IDependencyResolver resolver)
   at System.Web.Mvc.DependencyResolver.SetResolver(IDependencyResolver resolver)
   at GRP2App.Web.App_Start.DependencyConfig.RegisterDependencys(HttpConfiguration configuration) in c:\Dev\SVN-Git\GRP2.5\GRP2App\GRP2App.Web\App_Start\DependencyConfig.cs:line 96

我已经更新了所有的Unity nu-get软件包,因此所有不同的项目都应该在同一个版本上。我不确定还有什么可以尝试的。

1 个答案:

答案 0 :(得分:0)

我似乎记得这是从MVC 4升级到MVC 5的问题。

我使用NuGet进行了升级,但是web.config文件的程序集重定向和剃刀引擎部分中有多个版本号需要更新。

本文包含版本号需要升级的所有不同位置的完整说明。

http://www.asp.net/mvc/tutorials/mvc-5/how-to-upgrade-an-aspnet-mvc-4-and-web-api-project-to-aspnet-mvc-5-and-web-api-2

这对我来说很重要。

  

更新包含“System.Web.WebPages.Razor”的所有元素   版本“2.0.0.0”到版本“3.0.0.0”。如果此部分包含   “System.Web.WebPages”,从版本“2.0.0.0”更新这些元素   版本“3.0.0.0”