首页 > 编程语言 >AssemblyResolve巧解未能加载文件或程序集“Newtonsoft.Json, Version=6.0.0.0的问题

AssemblyResolve巧解未能加载文件或程序集“Newtonsoft.Json, Version=6.0.0.0的问题

时间:2024-04-27 10:11:06浏览次数:23  
标签:Newtonsoft 0.0 Json CurrentDomain 6.0 加载 AssemblyResolve

问题:未能加载文件或程序集“Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed”或它的某一个...
问题分析:
原因是因为引用的Microsoft.AspNet.SignalR.Client库的依赖项是6.0版本的Newtonsoft.Json,而且是动态加载进去的(用Assembly.LoadFrom),而主程序有v13的Newtonsoft.Json,
但降低版本后,将会导致其他模块出错,所以SignalR.Client的库在加载依赖项的时候,找不到v6版本的Newtonsoft.Json,就会报错。
解决办法:
在动态加载处添加以下代码:

AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve;

private static Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
{
    string simpName = new AssemblyName(args.Name).Name;
    string path = AppDomain.CurrentDomain.BaseDirectory + simpName + ".dll";
    return Assembly.LoadFrom(path);

}

这段代码将会在找不到dll的时候调用,这时候强行给Newtonsoft.json的程序集指定为主程序的那个Newtonsoft.Json。
问题解决。

标签:Newtonsoft,0.0,Json,CurrentDomain,6.0,加载,AssemblyResolve
From: https://www.cnblogs.com/johnyang/p/18161782

相关文章

  • 【python】记录一次python发送json数据到go服务端,服务端解析失败问题
    【python】记录一次python发送json数据到go服务端,服务端解析失败问题背景:在做性能测试时,python把采集到的性能数据通过post回传到服务端,服务端用go实现,服务端是将接收的json通过json.Unmarshal反序列化为对应的结构体,但在实现时一直提示数据类型错误的问题问题代码python发送请......
  • VMware之Ubuntu20.04拓展根目录磁盘空间
    1、改变虚拟磁盘大小关闭Ubuntu右键—>设置—>硬盘—->实用工具—>扩展填入扩展后的分区大小确定2、查看磁盘使用情况开启Ubuntu输入:df-hcl@cl:~$df-hFilesystemSizeUsedAvailUse%Mountedonudev955M0955M0%/devtmpfs......
  • Vetur can't find `tsconfig.json` or `jsconfig.json` in *****报错
    解决Vscode报错[Veturcan‘tfind‘tsconfig.json‘or‘jsconfig.json‘] 报错原因翻译一下报错信息,"Vetur找不到tsconfig.json文件或者jsconfig.json文件".首先Vetur只会扫描项目的根目录下的jsconfig或者tsconfig,如果没有这两个文件之一,就会报错.如果你是通过vue-c......
  • JSON基本使用 - 副本
    1.JSON是什么?JSON,全称是JavaScriptObjectNotation,即JavaScript对象标记法。JSON是一种轻量级(Light-Meight)、基于文本的(Text-Based)、可读的(Human-Readable)格式。JSON的名称中虽然带有JavaScript,但这是指其语法规则是参考JavaScript对象的,而不是指只能用于JavaSc......
  • golang之json.RawMessage
    RawMessage具体来讲是json库中定义的一个类型。它实现了Marshaler接口以及Unmarshaler接口,以此来支持序列化的能力。注意上面我们引用 官方doc 的说明。 使用场景设想一下,我们给某种业务场景定义了一个通用的model,其中部分数据需要在不同场景下对应不同的结构体......
  • DataGear 5.0.0 新特性之dgMap图表选项
    DataGear企业版1.1.0已发布!http://datagear.tech/pro/DataGear在新发布的5.0.0版本中,重构了地图类图表,新增了dgMap图表选项,可以更方便灵活地设置图表地图。在5.0.0版本之前,由于没有图表地图选项,无法在新建图表时设置地图,只能在将图表加入看板后,通过看板提供的dg-chart-m......
  • .net开源智能家居之小米米家的c#原生sdk【MiHome.Net】1.0.0发布
    背景介绍hi大家好,我是三合,作为一个非著名懒人,智能家居简直刚需,在上一篇文章他来了他来了,.net开源智能家居之苹果HomeKit的c#原生sdk【Homekit.Net】1.0.0发布,快来打造你的私人智能家居吧中有靓仔提到,没有苹果设备,有一说一,苹果手机很贵,并且原生支持苹果HomeKit的智能家居设备......
  • 他又来了,.net开源智能家居之小米米家的c#原生sdk【MiHome.Net】1.0.0发布,快来打造你的
    背景介绍hi大家好,我是三合,作为一个非著名懒人,智能家居简直刚需,在上一篇文章他来了他来了,.net开源智能家居之苹果HomeKit的c#原生sdk【Homekit.Net】1.0.0发布,快来打造你的私人智能家居吧中有靓仔提到,没有苹果设备,有一说一,苹果手机很贵,并且原生支持苹果HomeKit的智能家居设备也......
  • ROS1学习记录(10.0)
    学习视频:17.ROS中的坐标系管理系统_哔哩哔哩_bilibili 先要安装TF功能包:要依据自己ROS版本来安装先查询ROS版本:rosversion-dsudoapt-getinstallros-noetic-turtle-tf      /*讲install后面第二个单词改为自己对应版本*/因为版本与视频使用有所不同要增加......
  • Javascript的数据类型和json数组
    4个数据类型:NumberStringBooleanUndefinedalert(parseInt(k));//如果不是数字会输出NaN,从第一个字符开始输出数字,直到不是数字后返回值。json数组://js中k、v型数据,使用jsonvarperson={name:"张三",//注意里面的元素用,分割。定义的是key是name的value值为张三age......