【发布时间】:2019-05-04 06:01:36
【问题描述】:
在NinjectWebCommon.cs我有这个:
private static IKernel CreateKernel()
{
var kernel = new StandardKernel();
try
{
kernel.Bind<Func<IKernel>>().ToMethod(ctx => () => new Bootstrapper().Kernel);
kernel.Bind<IHttpModule>().To<HttpApplicationInitializationHttpModule>();
RegisterServices(kernel);
return kernel;
}
catch
{
kernel.Dispose();
throw;
}
}
当我运行我的 ASP.NET MVC 应用程序时,它会在该方法上崩溃:
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)
我已经从引用中删除了我的 Ninject DLL 并从 NuGet 管理器中再次添加它们,现在我的包文件看起来像这样,但仍然出现该错误:
<package id="Ninject" version="3.2.2.0" targetFramework="net451" />
<package id="Ninject.MVC3" version="3.2.1.0" targetFramework="net451" />
<package id="Ninject.Web.Common" version="3.2.3.0" targetFramework="net451" />
<package id="Ninject.Web.Common.WebHost" version="3.2.3.0" targetFramework="net451" />
我还应该做什么?
【问题讨论】:
-
您是否尝试过在您的项目中搜索整个项目以查找以下
System.Web.Mvc, Version=3.0.0.0上的 FindAll 您是否在发布文件夹与调试文件夹中有预期的代码..?反之亦然 -
是的,我已经搜索了所有文件...没有找到 3.0.0.0
-
您确定您拥有正确或更新的 .dll。您是否尝试过删除引用并读取新的引用。
-
你也可以试试RefExplorer是否有帮助。