我创建了新的asp mvc 5项目
项目目标.NET 4.5
我安装了ninject mvc 3 nuget包。
但是当我运行项目时,我在NinjectWebCommon.cs
方法中的CreateKernel()
中收到了此错误:
类型' System.IO.FileLoadException'的例外情况发生在 Ninject.dll但未在用户代码中处理
其他信息:无法加载文件或程序集 ' System.Web.Mvc,Version = 3.0.0.0,Culture = neutral, 公钥= 31bf3856ad364e35'或其中一个依赖项。该 定位程序集的清单定义与程序集不匹配 参考。 (HRESULT异常:0x80131040)
答案 0 :(得分:3)
您收到此错误,因为Ninject.MVC声称引用旧版本的ASP.NET MVC程序集。由于它是强类型的,因此您必须通知应用程序使用较新的程序集。这就是为什么默认项目模板中的web.config文件包含这样的运行时部分的原因:
<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>
您可以将其添加到您的配置中,也可以使用较新的Ninject package。
答案 1 :(得分:3)
请确保将其包含在应用程序Web配置文件中。
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
例如
<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>