Azure Function v2 引用的 Newtonsoft.Json 版本高于 Microsoft.NET.Sdk



我正在编写一个 v2 Azure 持久函数。将 C# 对象传递给帮助程序活动函数时,我在序列化所传递类型的自定义JsonConverter中收到运行时错误。自定义JsonConverter位于必须引用Newtonsoft.Json 12.x的库中,而Microsoft.NET.Sdk.Functions被锁定在11.0.2中。

jObject 错误 CS1705:标识为"ContractLibrary, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"的程序集"ContractLibrary"使用"Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed",

其版本高于引用的程序集"Newtonsoft.Json",标识为"Newtonsoft.Json, Version=11.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed">

我相信这个 GitHub 问题是相关的。关于该问题的评论似乎表明,将Newtonsoft.Json 12.x添加为函数项目的直接依赖项可能会有所帮助。这对另一个功能项目有帮助,但现在我又碰到了这堵墙。我能做些什么来缓解这种情况?

您可以尝试的一件事是绕过持久函数使用的序列化逻辑并执行自己的序列化。例如,不要这样做:

public static void MyFunc([ActivityTrigger] MyCustomType input)
{
// ...
}

尝试这样做:

public static void MyFunc([ActivityTrigger] JObject json)
{
// manually convert the JObect into MyCustomType
}

让我知道这是否能让你走得更远。

相关内容

  • 没有找到相关文章

最新更新