【发布时间】:2019-10-16 12:11:02
【问题描述】:
我正在编写一个 v2 Azure 持久函数。将 C# 对象传递给辅助活动函数时,我的自定义 JsonConverter 用于序列化传递的类型时出现运行时错误。自定义 JsonConverter 位于必须引用 Newtonsoft.Json 12.x 的库中,而 Microsoft.NET.Sdk.Functions 被锁定到 11.0.2。
jObject 错误 CS1705:具有标识“ContractLibrary,版本=1.0.0.0,Culture=neutral,PublicKeyToken=null”的程序集“ContractLibrary”使用“Newtonsoft.Json,版本=12.0.0.0,Culture=neutral,PublicKeyToken=30ad4fe6b2a6aeed”它的版本比引用的程序集“Newtonsoft.Json”更高,身份为“Newtonsoft.Json,Version=11.0.0.0,Culture=neutral,PublicKeyToken=30ad4fe6b2a6aeed”
我相信这个GitHub Issue 是相关的。该问题上的This comment 似乎表明将 Newtonsoft.Json 12.x 添加为 Function 项目的直接依赖项可能会有所帮助。这在另一个 Function 项目中有所帮助,但现在我又碰到了这堵墙。有什么办法可以缓解这种情况吗?
【问题讨论】:
-
您需要的 12 中究竟有什么...就像 GitHub 上提到的用于降级您的版本需求的 cmets 之一...?
-
按你说的做(函数项目中的直接引用)每次都对我有用。如果您将警告作为错误打开,您可能还需要在项目配置中仅禁用它生成的特定警告 (NU1608)。
-
你碰到的墙是什么?
-
@ChrisGillum 我遇到的墙是引用的运行时错误。
-
您需要使用下面@ChrisGillum 建议的内容。这是一个很好的答案,请点赞
标签: c# azure json.net azure-functions azure-durable-functions