未能加载文件或程序集“Newtonsoft.Json,Version = 13.0.0.0,Culture = neutral,PublicKeyToken = 30ad4fe6b2a6aeed“..

在尝试运行一个Winform程序的exe文件时,遇到了Newtonsoft.Json程序集加载失败的问题,原因是服务器缺少该库。通过将Debug目录完整复制到服务器上,问题得到解决,程序能够成功解析Json数据。
摘要由CSDN通过智能技术生成

未能加载文件或程序集"Newtonsoft.Json,Version = 13.0.0.0,Culture = neutral,PublicKeyToken = 30ad4fe6b2a6aeed"或它的某一个依赖项.找到的程序集清单定义与程序集引用不匹配.(异常来自HRESULT:0x80131040)
今天把生成的exe文件(Winform程序)放到服务器上,接收UDP信息后解析Json时出现以下错误,
排查到后面是服务器上没有Newtonsoft.Json文件。
后来直接把Debug整个文件直接拉过去就可以正常解析Json了。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

遇到`System.IO.FileLoadException`,特别是提到`Newtonsoft.Json`版本不兼容的情况,通常是因为尝试加载程序或库与引用的NuGet包(如`Newtonsoft.Json`)版本不符。当你试图运行的应用程序期望的是`Newtonsoft.Json` v13.0.0.0,但实际项目引用的是不同版本(可能是v4.5.0.0或v8.0.0.0),这会导致错误。 解决这个问题的方法有: 1. **更新引用**: 确认你的项目是否已安装了正确的`Newtonsoft.Json`版本。若未安装,可以到NuGet管理器里搜索并安装v13.0.0.0对应的包。如果是已经安装了,可能需要手动移除旧版本,再重新安装正确版本。 2. **更改配置**: 如果无法直接更新,你可以尝试在应用程序启动时设置`AppDomain`或`AssemblyResolve`事件,以指定从何处查找所需的特定版本的`Newtonsoft.Json.dll`。 3. **编译时绑定**: 对于某些情况,可以在编译时通过`bindingRedirect`来指定版本范围,让系统知道哪个版本的`Newtonsoft.Json`是可以接受的。例如,在`app.config`或`.csproj`中添加: ```xml <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral"/> <bindingRedirect oldVersion="0.0.0.0-13.0.0.0" newVersion="13.0.0.0"/> </dependentAssembly> </assemblyBinding> </runtime> ``` 如果以上步骤无效,确保你的开发环境没有其他地方意外引用了旧版的`Newtonsoft.Json`,因为这可能会导致冲突。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值