首页 > 解决方案 > ServiceStack:升级到 5.4.1 在 ServiceStack.Common 上给了我 ReflectionTypeLoadException

问题描述

我正在运行 ServiceStack 5.2.0,直到我因为这个答案而升级。

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

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

Type[] typeArray = assembly.GetTypes();

当我这样做时,我收到此错误:

在此处输入图像描述

{“来自程序集 'ServiceStack.Common, Version=5.0.0.0, Culture=neutral, PublicKeyToken=02c12cbda47e6587' 的类型 'ServiceStack.SimpleAppSettings' 中的方法 'GetKeyValuePairs' 没有实现。”:“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:line 105

一些底层库发生了什么事吗?

标签: servicestack

解决方案


正如 Mythz 在此处的评论中所说,所需要做的就是清除 NuGet 缓存:

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


推荐阅读