首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何解决这个NewtonSoft版本冲突?

如何解决这个NewtonSoft版本冲突?
EN

Stack Overflow用户
提问于 2018-05-21 22:17:48
回答 2查看 2.6K关注 0票数 1

我在做一个Azure函数。我使用的是Microsoft.Azure.Devices.Shared,它需要NewtonSoft v11,所以我已经实现了一些手动绑定重定向,它似乎正在使用应用程序域(见下文)。但不知怎么的,如果我正确地阅读下面的日志,NewtonSoft就会很难引用NewtonSoft应用程序域:

2018-05-21T22:03:03.824 Info : ANewtonsoft.Json.Linq.JObject不能转换为BNewtonsoft.Json.Linq.JObject。类型A来源于位于'D:\Program (x86)\SiteExtensions\Functions\1.0.11702\bin\Newtonsoft.Json.dll'.‘的上下文中的'Newtonsoft.Json,Version=9.0.0.0,Culture=neutral,PublicKeyToken=30ad4fe6b2a6aeed’B类型源自字节数组中上下文'Newtonsoft.Json‘、Version=11.0.0.0、Culture=neutral、PublicKeyToken=30ad4fe6b2a6aeed中的'LoadNeither’。

我的Newtonsoft v11 dll位于函数的bin目录中,在此引用如下:

代码语言:javascript
复制
#r "bin\Newtonsoft.Json.dll"

函数中有实际代码,这些代码在函数中正确工作:

代码语言:javascript
复制
dynamic eventHubMessage =
JsonConvert.DeserializeObject<JObject>(myEventHubMessage);

但当它碰到这条线时:

代码语言:javascript
复制
CRSLTwinData twinData = IotHubProxy.GetTwinData(hubDeviceId);

它抛出了异常。其中提到了M.A.D.Shared和Newtonsoft 11。

我已经尽力让这个函数使用11版本的dll,但是显然有些地方不正常。

更新:我们尝试重定向到9,但得到了以下结果:

2018-05-22T13:24:48.336信息例外: ANewtonsoft.Json.Linq.JObject不能转换为BNewtonsoft.Json.Linq.JObject。类型A来源于位于'D:\Program (x86)\SiteExtensions\Functions\1.0.11702\bin\Newtonsoft.Json.dll'.‘的上下文中的'Newtonsoft.Json,Version=9.0.0.0,Culture=neutral,PublicKeyToken=30ad4fe6b2a6aeed’类型B来源于'Newtonsoft.Json,Version=10.0.0.0,Culture=neutral,PublicKeyToken=30ad4fe6b2a6aeed‘中位于’D:\local\临时ASP.NET ASP.NET‘的上下文'LoadFrom’中的‘LoadFrom’

然后,我们尝试重定向到10,得到如下结果:):

2018-05-22T14:16:14.509信息异常: ANewtonsoft.Json.Linq.JObject不能转换为BNewtonsoft.Json.Linq.JObject。类型A来源于位于'D:\Program (x86)\SiteExtensions\Functions\1.0.11702\bin\Newtonsoft.Json.dll'.‘的上下文中的'Newtonsoft.Json,Version=9.0.0.0,Culture=neutral,PublicKeyToken=30ad4fe6b2a6aeed’类型B来源于'Newtonsoft.Json,Version=10.0.0.0,Culture=neutral,PublicKeyToken=30ad4fe6b2a6aeed‘中位于’D:\local\临时ASP.NET ASP.NET‘的上下文'LoadFrom’中的‘LoadFrom’

EN

回答 2

Stack Overflow用户

发布于 2018-05-26 10:52:02

我想您使用的是已经知道装配分辨率问题的azure函数1.0。

由于webjob使用了严格的Newtonsoft版本号,我在我的项目中所做的就是将我的所有版本降级为与sdk的

票数 0
EN

Stack Overflow用户

发布于 2018-06-29 20:15:38

使用Microsoft.NET.Sdk.Functions版本1.0.13,它使用Newtonsoft.Json 10.0.3

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

https://stackoverflow.com/questions/50457268

复制
相关文章

相似问题

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