C# 类型为';System.IO.FileLoadException';在Ninject.dll中发生,但未在用户代码中处理

C# 类型为';System.IO.FileLoadException';在Ninject.dll中发生,但未在用户代码中处理,c#,asp.net-mvc,asp.net-mvc-4,visual-studio-2013,C#,Asp.net Mvc,Asp.net Mvc 4,Visual Studio 2013,我正在关注Adam Freeman的Pro ASP.Net MVC5书。我已经按照第7章创建了sportsStore项目。在创建项目模板并添加引用之后,我构建项目并尝试调试它。我得到了这个弹出框 如果我点击cancel,我会得到问题中提到的异常。我想不出这一点。有什么建议吗 当我点击cancel时,我得到了上面的错误 以下是异常的调用堆栈- Ninject.dll!Ninject.Modules.AssemblyNameRetriever.GetAssemblyNames(System.Col

我正在关注Adam Freeman的Pro ASP.Net MVC5书。我已经按照第7章创建了sportsStore项目。在创建项目模板并添加引用之后,我构建项目并尝试调试它。我得到了这个弹出框

如果我点击cancel,我会得到问题中提到的异常。我想不出这一点。有什么建议吗

当我点击cancel时,我得到了上面的错误

以下是异常的调用堆栈-

Ninject.dll!Ninject.Modules.AssemblyNameRetriever.GetAssemblyNames(System.Collections.Generic.IEnumerable<string> filenames, System.Predicate<System.Reflection.Assembly> filter) Line 54   C#
Ninject.dll!Ninject.Modules.CompiledModuleLoaderPlugin.LoadModules(System.Collections.Generic.IEnumerable<string> filenames) Line 81    C#
Ninject.dll!Ninject.Modules.ModuleLoader.LoadModules(System.Collections.Generic.IEnumerable<string> patterns) Line 54   C#
Ninject.dll!Ninject.KernelBase.Load(System.Collections.Generic.IEnumerable<string> filePatterns) Line 237   C#
Ninject.dll!Ninject.KernelBase.KernelBase(Ninject.Components.IComponentContainer components, Ninject.INinjectSettings settings, Ninject.Modules.INinjectModule[] modules) Line 100  C#
Ninject.dll!Ninject.KernelBase.KernelBase(Ninject.Modules.INinjectModule[] modules) Line 60 C#
Ninject.dll!Ninject.StandardKernel.StandardKernel(Ninject.Modules.INinjectModule[] modules) Line 48 C#
Ninject.dll!Ninject.Modules.AssemblyNameRetriever.GetAssemblyNames(System.Collections.Generic.IEnumerable文件名,System.Predicate筛选器)第54行C#
Ninject.dll!Ninject.Modules.CompiledModuleLoaderPlugin.LoadModules(System.Collections.Generic.IEnumerable文件名)第81行C#
Ninject.dll!Ninject.Modules.ModuleLoader.LoadModules(System.Collections.Generic.IEnumerable模式)第54行C#
Ninject.dll!Ninject.KernelBase.Load(System.Collections.Generic.IEnumerable文件模式)第237c行#
Ninject.dll!KernelBase.KernelBase(Ninject.Components.IComponentContainer组件,Ninject.injectSettings设置,Ninject.Modules.injectModule[]模块)第100行C#
Ninject.dll!KernelBase.KernelBase(Ninject.Modules.inInputModule[]Modules)第60行C#
Ninject.dll!Ninject.StandardKernel.StandardKernel(Ninject.Modules.InInputModule[]模块)第48行C#
SportsStore.WebUI.dll!sportstore.WebUI.App_Start.NinjectWebCommon.CreateKernel()行38 C# Ninject.Web.Common.dll!Ninject.Web.Common.Bootstrapper.Initialize(System.Func createKernelCallback)第50行C# SportsStore.WebUI.dll!sportstore.WebUI.App_Start.NinjectWebCommon.Start()行23 C# [外部代码] . 我知道AssemblyNameRetriever类丢失,我确实尝试通过从github下载并使用该类来修复它。但也有一些例外。九个对象不应该自己处理这个类吗


查看您的异常,您正在尝试加载Mvc版本3.0.0.0。您当前正在运行不同的Mvc版本

如果您拥有依赖旧版本Mvc的项目的源代码,您可以尝试用新版本重新编译它们。您还可以尝试处理依赖项,以全面获得正确的版本

还有一个页面,上面有一个人有类似的情况:

在查看发送给我的代码pes1957后,我能够确定确实存在程序集引用错误

基本上,解决方案中的项目数量混合了版本5和版本6实体框架引用。我更新了引用和web.config,以显示正确的版本号和所有正确的编译


同样的问题也发生在我的项目中。似乎是从nuget包中安装NInject作为第一个导致NInject库需要System.Web.MVC v3。从nuget package manager卸载所有Ninject库并添加Ninject.MVC5包作为第一个也是唯一的包后,问题得到了解决。

我遇到了这个问题,结果发现我的MVC web项目引用了另一个MVC web API项目,Ninject错误来自web API项目。在我的例子中,我删除了引用以保持简单。

您可以发布从异常中获得的其他信息吗?这可能会有所帮助,但可能不会:点击Ctrl+Alt+E,在“公共语言运行时异常”下选择“抛出”。这可能有助于您查明错误。在向我的项目添加引用时,我添加了System.Web.Mvc版本4.0.0.0。我不明白为什么加载时需要3.0.0.0它必须是另一个需要旧版本的程序集(Ninject)。您可以尝试查找要使用的程序集的较新版本。我已通过Nuget软件包管理器安装了以下软件包:1。Ninject-该版本不会显示在包管理器中。只有一个名为Ninject的软件包,我已经安装了它。2.Ninject.Web.Common-与Ninject相同。没有提到版本。只列出一个包裹。3.Ninject.MVC5。现在,这应该与MVC5兼容。我不知道这三个包裹中的哪一个引起了麻烦。其中之一是尝试加载System.Web.Mvc 3.0.0.0