ServiceStack:升级到 5.4.1 在 ServiceStack.Common 上给了我 ReflectionTypeLoadException

Posted

技术标签:

【中文标题】ServiceStack:升级到 5.4.1 在 ServiceStack.Common 上给了我 ReflectionTypeLoadException【英文标题】:ServiceStack: Upgrade to 5.4.1 gives me ReflectionTypeLoadException on ServiceStack.Common 【发布时间】:2019-07-17 22:44:53 【问题描述】:

我运行的是 ServiceStack 5.2.0,直到我升级到 to this answer。

完成此操作并再次运行应用程序后,我现在在处理程序集时得到ReflectionTypeLoadException ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=02c12cbda47e6587

在我的代码中,出于某种与此问题无关的原因,我执行以下操作:

Type[] typeArray = assembly.GetTypes();

当我这样做时,我得到了这个错误:

“方法 'GetKeyValuePairs' 在程序集 'ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=02c12cbda47e6587' 的类型 'ServiceStack.SimpleAppSettings' 中没有实现。”:“ServiceStack.SimpleAppSettings”

我想“让我们避免处理 Servicestack,因为这不是我真正想要的”,所以我将其更改为:

if (!assembly.DefinedTypes.Any(x => x.FullName.StartsWith("SomeThing")))

但是当执行到这一行时我仍然得到同样的错误。

更新

升级后,我居然在别处也看到了 LoaderExceptions:

System.Reflection.ReflectionTypeLoadException:无法加载一个或 更多请求的类型。检索 LoaderExceptions 属性 了解更多信息。在 System.Reflection.RuntimeModule.GetTypes(RuntimeModule 模块)在 System.Reflection.RuntimeModule.GetTypes() 在 System.Reflection.Assembly.GetTypes() 在 tWorks.Core.CoreServerCommons.RequestProcessing.RequestProcessorFactory`2.c.b__8_0(组装 组装)在 ....RequestProcessorFactory.cs:行 105

一些底层库出了什么问题?

【问题讨论】:

【参考方案1】:

正如 Mythz 在 cmets here 中所说,所需要做的就是清除 NuGet 缓存:

VS --> Tools --> NuGet Packet Manager --> Packet Manager Settings --> Clear All NuGet Caches(s)

【讨论】:

以上是关于ServiceStack:升级到 5.4.1 在 ServiceStack.Common 上给了我 ReflectionTypeLoadException的主要内容,如果未能解决你的问题,请参考以下文章

ServiceStack 5.13.0 元数据和 swagger-ui 页面在 .NET 6 迁移后返回 500 错误

Magnolia 从 5.3.4 升级到最新版本

软删除使用servicestack.ormlite问题,怎么解决

如何在 ServiceStack 5.0 项目中使用来自 ServiceStack 4.0 的服务模型?

如何在 ServiceStack 中添加 protobuf

ServiceStack:添加 Blazor 支持?