我们有一个项目正在使用一组基于Nuget的Azure库。其中一个发布时具有对Newtonsoft.Json的特定MIN和MAX依赖(最大版本为7)
这很令人头疼,因为其他库依赖于8+版本的Netwon,这个特定的Azure库可以很好地处理任何现代Json包。
在VS2013中,我们强制通过nuget安装程序使用较新版本的Json软件包安装此Azure库,随后,Nuget从未在安装/更新其他库时出现任何问题。
但是,在升级到VS2017后,我们无法更新任何软件包(或至少是依赖于Json的软件包),我们会收到以下错误。
无法解析依赖项。 'Newtonsoft.Json 8.0.3'与'Microsoft.Azure.Insights 0.15.0-预览约束:Newtonsoft.Json(> = 6.0.8&&< 7.0.0)'不兼容
我们如何让Nuget忽略特定Azure库对MAX版本的不重要依赖?
答案 0 :(得分:4)
我们如何让Nuget忽略特定Azure库对MAX版本的不重要依赖?
如果您确认Azure库可以正常使用任何现代Json包,并且您希望同时使用Microsoft.Azure.Insights 0.15.0-preview
和8+版本的Newtonsoft.Json
。我想为您提供一种解决方法,希望这可以帮助您。
详细步骤:
首先安装包Microsoft.Azure.Insights 0.15.0-preview
及其依赖项。
只卸载程序包Microsoft.Azure.Insights 0.15.0-preview
,保持依赖项安装。
将Newtonsoft.Json
更新为版本8 +。
使用以下NuGet命令在程序包管理器控制台中安装程序包Microsoft.Azure.Insights 0.15.0-preview
:
Install-package Microsoft.Azure.Insights -IncludePrerelease -IgnoreDependencies
使用选项-IgnoreDependencies
,NuGet将忽略特定Azure库对MAX版本的不重要依赖:
注意:需要提及的是,如果您下次更新Newtonsoft.Json
包,则仍需要按照上述步骤升级Newtonsoft.Json
包。