Asp.net mvc 4 MVC 4添加控制器错误无法检索我的模型的元数据

Asp.net mvc 4 MVC 4添加控制器错误无法检索我的模型的元数据,asp.net-mvc-4,ef-code-first,Asp.net Mvc 4,Ef Code First,我最近在解决方案中添加了一个MVC4 Web应用程序,并对我的公共类库进行了引用。公共类库包含模型和上下文(EF代码优先) 尝试使用Visual Studio的脚手架功能向MVC4应用程序“添加控制器”时,出现以下错误: 无法检索“Common.Models.MyContext”的元数据。不能 加载一个或多个请求的类型。检索LoaderExceptions 属性以获取更多信息 我发现了很多关于堆栈溢出的类似问题,但是没有一个针对这个特定场景的特定错误消息 在我的调查中,我发现如果我从公共库中删除

我最近在解决方案中添加了一个MVC4 Web应用程序,并对我的公共类库进行了引用。公共类库包含模型和上下文(EF代码优先)

尝试使用Visual Studio的脚手架功能向MVC4应用程序“添加控制器”时,出现以下错误:

无法检索“Common.Models.MyContext”的元数据。不能 加载一个或多个请求的类型。检索LoaderExceptions 属性以获取更多信息

我发现了很多关于堆栈溢出的类似问题,但是没有一个针对这个特定场景的特定错误消息

在我的调查中,我发现如果我从公共库中删除所有添加的软件包和第三方dll,我就能够毫无错误地使用“添加控制器”函数。这告诉我,我的某个包或第三方dll不在需要的位置(如错误消息所示)

所以我的问题是:

  • 如何找出导致问题的dll?是否有Visual Studio脚手架日志文件
  • 说我发现有问题的dll。。。dll需要在哪里运行才能修复脚手架错误

  • 确保您的web应用程序项目具有来自其他项目的所有必需引用。仅仅因为您的公共项目依赖于DLL,并不意味着引用将被复制到您的web项目。您必须手动添加从属DLL作为引用,并将Copy Local设置为“true”

    确保您的web应用程序项目具有来自其他项目的所有必需引用。仅仅因为您的公共项目依赖于DLL,并不意味着引用将被复制到您的web项目。您必须手动添加从属DLL作为引用,并将Copy Local设置为“true”

    如果您使用的是单独的项目,请检查EF是否具有相同的版本号

    如果您使用的是单独的项目,请检查EF是否具有相同的版本号

    Common使用的OData版本与Web应用程序使用的版本(5.1.0与5.4.0)之间存在差异。这是由Azure Media Services nuget软件包中的错误引起的。很好的发现-注意:您始终可以使用绑定重定向强制绑定到较新版本(假设向后兼容)。Common使用的OData版本与Web应用程序使用的版本(5.1.0与5.4.0)之间存在差异。这是由Azure Media Services nuget软件包中的错误引起的。很好的发现-注意:您始终可以使用绑定重定向强制绑定到新版本(假设向后兼容)。