我正在尝试使用Adam Freeman的“Pro ASP.NET MVC 5”一书来学习ASP.NET MVC。不幸的是,所有使用Ninject的项目都会抛出相同的错误
Ninject.dll中出现“System.IO.FileLoadException”类型的异常,但未在用户代码中处理
其他信息:无法加载文件或程序集'System.Web.Mvc,> Version = 3.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其某个>依赖项。定位的程序集的清单定义与程序集>引用不匹配。 (HRESULT异常:0x80131040)
这与本主题中讨论的问题完全相同,
Issues after installing ninject mvc 3 in mvc 5 project
但提供的解决方案对我不起作用。
我尝试过目标平台4.5和4.5.1,Ninject MVC3和MVC5。我还插入了这个片段
<runtime>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
</dependentAssembly>
</runtime>
在Web.config
文件中,没有任何影响。
问题必须出在Ninject MVC3和MVC5包中。无论何时安装这些软件包,对Ninject.StandardKernel()
的任何调用都会抛出异常,无论是从Global.asax
还是从新NinjectWebCommon.cs
还是从任何其他代码中获取(当然,这不应该对于这种异常无关紧要,但是在这个帖子Error using Ninject with ASP.NET V4中,有人认为该错误可能与使用Global.asax
将Ninject连接到应用程序有关。
我已经没有想法了。有人可以帮忙吗?
答案 0 :(得分:7)
添加到您的Web.config(即SportsStore.WebUI项目):
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
它应该与此一起工作 - &gt; <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">