Question

I have created new asp mvc 5 project.
Project target .NET 4.5.
I installed ninject mvc 3 nuget package. But when I run project I get this error in NinjectWebCommon.cs in CreateKernel() method:

An exception of type 'System.IO.FileLoadException' occurred in Ninject.dll but was not handled in user code

Additional information: Could not load file or assembly 'System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

Was it helpful?

Solution

You get this error because the Ninject.MVC assebly is referencing an older version of ASP.NET MVC assembly. Since it's strongly typed, you have to inform the application to use the newer assembly. That's why web.config files in the default project templates contain runtime sections like this:

<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>

You can add this to your configuration or use the newer Ninject package.

OTHER TIPS

Please make sure to include this in application webconfig file.

 <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">

e.g.

 <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>
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top