首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法从程序集“ServiceStack.Redis、Version=3.9.48.0、Culture=neutral、PublicKeyToken=null”加载类型“Culture=neutral”

无法从程序集“ServiceStack.Redis、Version=3.9.48.0、Culture=neutral、PublicKeyToken=null”加载类型“Culture=neutral”
EN

Stack Overflow用户
提问于 2017-05-26 13:25:02
回答 2查看 113关注 0票数 1

目前,在我的应用程序中,我正在尝试实现我使用过RedisSentinel的应用程序缓存。

我们有一个公共程序集,它具有为Redis实现的所有代码和配置,该程序集的ServiceStack版本为4.5.4。

我指的是我的项目中相同的程序集(DLL),但是我们有ServiceStack 3.9.48,目前还没有升级它的计划。

在尝试访问RedisSentinel实例时,我得到以下错误:

无法从程序集“ServiceStack.Redis、Version=3.9.48.0、Culture=neutral、PublicKeyToken=null”加载类型“Culture=neutral”

请谁来指导如何解决这个问题?

最终目标是在我的应用程序中使用RedisSentinel,该应用程序使用ServiceStack 3.9.48,我更愿意访问上面提到的自定义程序集,我们已经在其他项目中引用了这些自定义程序集。

在这方面的任何帮助将是非常感谢的。

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-05-26 13:33:27

请大家指点如何解决这个问题?

选项:

  • 将您交付的版本更新为4.5.4 (并在升级过程中做任何必要的工作)
  • 不要使用3.9.48 中不存在的任何API特性
    • 执行此操作的一种方法是降低使用该版本的第一个程序集的级别。

  • 在这两个任务中使用两个完全独立的进程(从技术上讲,您可以使用应用程序域,但这非常混乱):一个提供和引用3.9.48,另一个提供和引用4.5.4。

基本上,您只能将dll的一个版本加载到应用程序域中.如果您同时引用了4.5.4和3.9.48,那么运行时发生的事情取决于版本加载,即包中的版本。

  • 如果您发布了3.9.48,那么期望4.5.4的代码在任何时候都可能失败,特别是如果它使用的API在3.9.48中不存在,但在4.5.4中却存在
  • 如果您发布了4.5.4,那么期望3.9.48的代码在任何时候都可能失败,特别是如果它使用的API已被删除或发生了任何中断更改(根据分词规则,中断更改允许在3.*到4.*之间)。

在一般情况下,我建议“使用更新的”,因为它可能包含您正在使用的3.9.48中存在的特性的bug修复。当然,更新的代码也可能意味着新的bug :)

票数 1
EN

Stack Overflow用户

发布于 2017-05-26 13:33:08

RedisSentinelServiceStack.Redis v4特性。每当您看到时,这意味着在您使用的版本中不存在Type。

ServiceStack v3已有几年的历史了,您可以通过查看v3源代码来找出它有哪些特性和类。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44202796

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档