gpt4 book ai didi

c# - ServiceStack TypeLoadException - 未知来源

转载 作者:行者123 更新时间:2023-11-30 16:19:14 25 4
gpt4 key购买 nike

一些背景知识:我最近从源代码 (https://github.com/ServiceStack/ServiceStack) 重新编译了 ServiceStack 库。在完成一些错误修复后,我还重新编译了 ServiceStack.Text 项目。我将 ServiceStack.Text dll 文件复制到 ServiceStack 项目的“lib”文件夹中(它在那里是因为 ServiceStack 解决方案不包含文本中的序列化程序)。

现在我得到 TypeLoadExceptions,如下所示:

System.TypeLoadException: Method 'get_StatusCode' in type 'ServiceStack.ServiceInterface.Testing.MockHttpResponse' from assembly 'ServiceStack.ServiceInterface, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' does not have an implementation. at System.Reflection.RuntimeAssembly.GetExportedTypes(RuntimeAssembly assembly, ObjectHandleOnStack retTypes) at System.Reflection.RuntimeAssembly.GetExportedTypes() at ----my code from here...----

我不确定是什么问题。我怀疑这可能是一个循环 DLL 引用问题(DLL Hell),因为 ServiceStack.OrmLite 被引用(它也引用回这个项目中的其他解决方案);但是,在删除所有对 ServiceStack 项目的引用后,我仍然没有解决问题。

这篇文章似乎有一些想法,但我并没有成功地完成这些:TypeLoadException says 'no implementation', but it is implemented

最佳答案

您正在为不同版本的 ServiceStack 组件使用脏 dll,这些组件应该保持同步。

在每个主要 ServiceStack 组件 dll 的程序集中都标记了版本号,这与部署在 NuGet 上的版本相匹配,例如ServiceStack 的最新版本是 v3.9.38,您需要确保您至少使用所有其他库的 v3.9.38

核心 ServiceStack 依赖矩阵如下所示:

ServiceStack.Text
+
> ServiceStack.Interfaces
> ServiceStack.Common
+
> ServiceStack.Redis
> ServiceStack.OrmLite
+
> ServiceStack
+
> ServiceStack.ServiceInterface

如果您使用 v3.9.38 的 ServiceStack.dll,您需要确保 ServiceStack 之上的所有子组件至少为 v3.9.38

关于c# - ServiceStack TypeLoadException - 未知来源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15418269/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com