错误消息“无法加载一种或多种请求的类型。检索 LoaderExceptions 属性以获取更多信息。

Posted

技术标签:

【中文标题】错误消息“无法加载一种或多种请求的类型。检索 LoaderExceptions 属性以获取更多信息。【英文标题】:Error message 'Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.' 【发布时间】:2010-11-08 16:14:18 【问题描述】:

我使用Entity Framework、SQL Server 2000、Visual Studio 2008 和 Enterprise Library 开发了一个应用程序。

它在本地工作得很好,但是当我将项目部署到我们的测试环境时,我收到以下错误:

无法加载一种或多种请求的类型。检索 LoaderExceptions 属性以获取更多信息

堆栈跟踪:在 System.Reflection.Module._GetTypesInternal(StackCrawlMark& stackMark)

在 System.Reflection.Assembly.GetTypes()

在 System.Data.Metadata.Edm.ObjectItemCollection.AssemblyCacheEntry.LoadTypesFromAssembly(LoadingContext 上下文)

在 System.Data.Metadata.Edm.ObjectItemCollection.AssemblyCacheEntry.InternalLoadAssemblyFromCache(LoadingContext 上下文)

在 System.Data.Metadata.Edm.ObjectItemCollection.AssemblyCacheEntry.LoadAssemblyFromCache(Assembly 程序集,布尔 loadReferencedAssemblies,Dictionary2 knownAssemblies, Dictionary2& typesInLoading,List`1& 错误)

在 System.Data.Metadata.Edm.ObjectItemCollection.LoadAssemblyFromCache(ObjectItemCollection objectItemCollection,Assembly 程序集,布尔 loadReferencedAssemblies)

在 System.Data.Metadata.Edm.ObjectItemCollection.LoadAssemblyForType(类型类型)

在 System.Data.Metadata.Edm.MetadataWorkspace.LoadAssemblyForType(类型类型,程序集调用Assembly)

在 System.Data.Objects.ObjectContext.CreateQuery[T](String queryString, ObjectParameter[] 参数)

实体框架似乎有问题,有什么解决办法吗?

【问题讨论】:

没有灵丹妙药可以解决这个问题,但这个答案将帮助您了解确切原因***.com/a/8824250/185022 我通过从 Azure 中删除所有文件并重新部署 API 解决了这个问题。 【参考方案1】:

我在使用 Visual Studio 2015 创建新的 Microsoft Word 插件时也遇到了这个问题。问题是我有两个版本的 MS Office,2013 和 2016。我卸载了 MS Office 2013,然后它就可以工作了。

【讨论】:

【参考方案2】:

我在 Nuget 控制台中输入迁移命令时遇到了实体框架的这个问题。

当我将我的 OAuthAuthorizationServerProvider 代码从我的应用程序移动到包含核心数据访问逻辑以及我的 DBContext 类的类库项目中时,问题出现了。

我检查了类库项目引用的所有 DLL。对于所有这些(.net 系统 DLL 除外)CopyToLocal 是真的,我完全糊涂了。

我知道 DLL 本身而不是我的代码有问题。我再次检查了它们,发现当我将 ApplicationOauthProvider 类移动到类库项目中时,ApplicationOauthProvider 继承自 OAuthAuthorizationServerProvider > 位于 Microsoft.Owin.Security.OAuth 程序集中的类,我检查了它的包版本,突然注意到我用于类库项目(不是我的应用程序项目)的包版本非常旧 2.1,但是在我的应用程序上安装了最新版本(3.0.1),所以我从 Nuget 升级了 Microsoft.Owin.Security.OAuth 包的版本,用于我的类库项目,问题就解决了

简而言之,在检查您的 DLL 的 CopyToLocal 属性后,也要检查它们的版本并将旧版本更新为最新版本

【讨论】:

【参考方案3】:

这也发生在我身上。我解决了如下问题: 右键单击解决方案,管理解决方案的 NuGet 包... 合并软件包并将软件包升级为同一版本。

【讨论】:

【参考方案4】:

我在引用 nuget 包时遇到了这个问题,后来我使用删除选项从我的项目中删除它。在与这个问题斗争了几个小时后,我不得不清除 bin 文件夹。为避免这种情况,建议使用 nuget 卸载不需要的软件包,而不是通常的删除

【讨论】:

【参考方案5】:

在我的情况下,我的项目中安装了一个 nuget 包,但是包文件夹从未检入 TFS,因此在构建机器中缺少 nuget 包 bin 文件。因此在生产中我遇到了这个错误。我必须将 bin 文件夹与我的本地文件夹进行比较,然后我发现哪些 dll 丢失了,并且我发现这些 dll 属于一个 nuget 包。

【讨论】:

【参考方案6】:

如果您在 PowerShell 中引用 .dll 时遇到此错误,并且您的 .dll 是 .NET 5(也是 .NET Core?),那么您应该确保在 PowerShell 6+ 中执行 PowerShell 脚本而不是 Windows PowerShell 5.1(或更早版本)。这在特定情况下帮助了我。

【讨论】:

以上是关于错误消息“无法加载一种或多种请求的类型。检索 LoaderExceptions 属性以获取更多信息。的主要内容,如果未能解决你的问题,请参考以下文章

为啥即使没有错误,表单也会出现错误消息?

如何解决 weasyprint 错误消息 gobject-2.0-0 错误 0x7e 消息?

如何在spring mvc 3.0中的同一jsp中显示运行时错误消息或sql错误消息

当我想连接有这个问题“错误”:“内部服务器错误”,“消息”:“没有可用的消息”,[重复]

自定义错误消息的 Grails 问题

修复包含错误的单元格时,消息框一直显示