软件包的依赖关系与Newtonsoft.Json冲突

时间:2020-03-12 13:34:22

标签: c# dependencies package nuget azure-functions

我有一个Azure Function项目<.em>(。NET Framework),并且已经安装了此NuGet程序包。

<PackageReference Include="Microsoft.Azure.Services.AppAuthentication" Version="1.0.3" />
<PackageReference Include="Microsoft.AspNet.Mvc" Version="5.2.4" />
<PackageReference Include="Microsoft.Graph" Version="1.17.0" />
<PackageReference Include="Microsoft.NET.Sdk.Functions" Version="1.0.29" />
<PackageReference Include="Newtonsoft.Json" Version="9.0.1" />
<PackageReference Include="Swagger" Version="1.0.0" />
<PackageReference Include="System.ValueTuple" Version="4.5.0" />

该项目还具有另一个创建的其他项目的引用。接下来是我的依赖关系:

<package id="Microsoft.Azure.KeyVault" version="3.0.5" targetFramework="net472" />
<package id="Microsoft.Azure.KeyVault.WebKey" version="3.0.5" targetFramework="net472" />
<package id="Microsoft.Azure.ServiceBus" version="4.0.0" targetFramework="net472" />
<package id="Microsoft.Graph" version="1.17.0" targetFramework="net472" />
<package id="Microsoft.Graph.Core" version="1.17.0" targetFramework="net472" />
<package id="Newtonsoft.Json" version="12.0.3" targetFramework="net472" />

运行函数时,出现此错误:

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

软件包有什么问题?我一直在寻找解决方案的一天,但是我发现的唯一发现是,每个软件包的依赖项都使用Newtonsoft.Json的不同版本。的 Microsoft.NET.Sdk.Functions的Newtonsoft依赖关系必须为9.0.1,而其他依赖关系则为10.0.3或更高。

我该如何解决?

2 个答案:

答案 0 :(得分:1)

newtonsoft json版本是=否> =。这个问题已经存在很长时间了,MS在这里跟踪这项工作:https://github.com/Azure/azure-functions-vs-build-sdk/issues/304

创建函数v3以避免此错误。

答案 1 :(得分:0)

根据doc,指定的版本是所需的最低版本。您可以了解有关软件包版本here的更多信息。