【问题标题】:Azure function SDK Causing Newtonsoft issueAzure 函数 SDK 导致 Newtonsoft 问题
【发布时间】:2019-11-18 22:41:09
【问题描述】:

我们在 .Net Frame work 4.6 的 Visual Studio 2017 中使用 azure function SDK。我们添加了 nuget 包

Microsoft.Azure.Devices.Shared 1.15.1 Newtonsoft.Json 12.0.1
AzureFunctions.Autofac 3.0.7(用于依赖注入)

在创建 Twin 实例时,我们会收到以下异常消息

"message": "无法加载文件或程序集 'Newtonsoft.Json,Version=10.0.0.0, > Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' 或 它的依赖项之一。系统找不到指定的文件。",

我们尝试将包降级到

Newtonsoft.Json 10.0.1

然后我们通过用 Newtonsoft.Json 版本 12.0.1 替换缺少的 Newtonsoft.Json 版本 10.0.1 得到同样的错误。

这是我们正在遵循的代码。

    Twin updatetwin = new Twin(); 
    updatetwin.ETag = "*"; 
    var body = await RequestBody(req); 
    var newtwin =JsonConvert.DeserializeObject<PropertyViewModel>(body);

【问题讨论】:

  • 你必须使用 .NET Framework 吗?如果您可以切换到 NET Core 和 Functions v2,那么关于依赖关系的整个问题应该会消失。
  • @silent 我们有很多用 .net 框架编写的代码,改变它需要很多时间有没有其他方法可以解决 dll 丢失问题?

标签: c# azure json.net azure-functions


【解决方案1】:

我正在使用

Newtonsoft.Json 9.0.1

使用 .net 框架 4.6 和

Microsoft.NET.Sdk.Functions 1.0.13

您可以在 nuget 包管理器中检查所需的依赖项-

【讨论】:

  • 我们无法将 Newtonsoft.Json 降级到 10.0.1 以下,因为 Microsoft.Azure.Devices.Shared 1.15.1 无法在 10.0.1 以下运行。有没有我们可以像 app.config /web.config 一样指定使用哪个版本的 newtonsoft.json?
  • 您可以使用 Microsoft.NET.Sdk.Functions = 1.0.28,因为它依赖于 Newtonsoft.Json (= 11.0.2)
猜你喜欢
  • 2015-09-27
  • 1970-01-01
  • 2013-10-05
  • 2014-05-03
  • 1970-01-01
  • 1970-01-01
  • 2020-09-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多