电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

如何解决“未能加载文件或程序集Newtonsoft.Json

来源:金蝶云社区作者:金蝶2024-09-2318

如何解决“未能加载文件或程序集Newtonsoft.Json

报错场景:

上传图片

 

        用户使用SDK中心-OpenAPI (kingdee.com)下载的适用于.net4.0的sdk8.1.0和9.1.0版本及之后时,如果用户使用他们的同时手动引用Newtonsoft.json.dll组件会导致报错:

        未能加载文件或程序集“Newtonsoft.Json, Version=4.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)

 

上传图片

 

 

产生原因:

        .net4.0SDK的8.1.0和9.1.0版本改动了对引用组件Newtonsoft.json.dll的无版本要求,即之前版本使用sdk时必须手动引用我们提供的Newtonsoft.json.dll包,固定版本为4.0.0。而.net4.0SDK8.1.0和9.1.0版本后无需手动引用,而是使用NuGet管理器安装任意4.0.0版本以上的Newtonsoft.json即可使用。

对于用户的生产场景更灵活,减少和用户已有项目的同名dll的冲突。

PS:

        这里对.net4.0SDK的8.1.0和9.1.0两个版本做出解释,8.1.0的版本sdk包名为Kingdee.BOS.WebApi.Client.dll,因为同产品包目录使用的Kingdee.BOS.WebApi.Client.dll同名,为了防止某些特殊情况下用户会需要同时引用这两个包的,因此更改了命名空间,重新命名包名为Kingdee.CDP.WebApi.SDK.dll,且版本从9.0.1开始。除了命名空间不同外,两个包的内容是完全一致的,官方更推荐使用Kingdee.CDP.WebApi.SDK。

上传图片

 

解决方案:

场景1:

        用户使用的是.net4.0SDK的9.1.0或者8.1.0版本,手动引用了Newtonsoft.json.dll包。且用户的二开项目会单独部署后与产品端通信。

方案1:

        移除原先的Newtonsoft.json引用,右键解决方案点击-》管理NuGet程序包,搜索Newtonsoft.json,选择自己需要的版本安装即可。

 

场景2:

        同场景1,但不同的是用户二开后的包会放到K3Cloud\WebSite\Bin目录下,即作为产品本身的一部分与产品通信。

方案2:

        首先声明,官方并不建议产品内的通信使用SDK,更建议使用产品内本身的Kingdee.BOS.WebApi.Client.dll包,而不是从SDK中心下载的专门提供给第三方调用的SDK包

如何解决“未能加载文件或程序集Newtonsoft.Json

报错场景: 用户使用SDK中心-OpenAPI (kingdee.com)下载的适用于.net4.0的sdk为8.1.0和9.1.0版本及之后时,如果用户使用他们的同...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信