Nuget 无法解析依赖项。'“xxx”与“yyy约束:zzz”不兼容

Nuget 无法解析依赖项。'“xxx”与“yyy约束:zzz”不兼容,nuget,visual-studio-2017,Nuget,Visual Studio 2017,我们有一个项目正在利用一组基于Nuget的Azure库。其中一个版本发布时对Newtonsoft.Json MAX版本具有特定的最小和最大依赖关系,版本为7 这是一个令人头痛的问题,因为其他库依赖于8+版本的Netwon,而这个特定的Azure库可以与任何现代Json包配合使用 在VS2013中,我们通过nuget安装程序强制安装了这个Azure库和更新版本的Json包,随后,nuget在安装/更新其他库时从未给我们任何问题 但是,升级到VS2017后,我们无法更新任何包,或者至少无法更新依赖J

我们有一个项目正在利用一组基于Nuget的Azure库。其中一个版本发布时对Newtonsoft.Json MAX版本具有特定的最小和最大依赖关系,版本为7

这是一个令人头痛的问题,因为其他库依赖于8+版本的Netwon,而这个特定的Azure库可以与任何现代Json包配合使用

在VS2013中,我们通过nuget安装程序强制安装了这个Azure库和更新版本的Json包,随后,nuget在安装/更新其他库时从未给我们任何问题

但是,升级到VS2017后,我们无法更新任何包,或者至少无法更新依赖Json的包,我们得到以下错误

无法解析依赖项。'Newtonsoft.Json 8.0.3“与Microsoft.Azure.Insights 0.15.0-preview约束不兼容:Newtonsoft.Json>=6.0.8&<7.0.0”

我们如何让Nuget忽略特定Azure库不重要的最大版本依赖性

我们如何让Nuget忽略特定Azure库不重要的最大版本依赖性

如果您确认Azure library可以与任何现代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命令在package Manager控制台中安装软件包Microsoft.Azure.Insights 0.15.0-preview:

安装软件包Microsoft.Azure.Insights-IncludePrerelease-IgnoreDependencies

使用-IgnoreDependencies选项,NuGet将忽略特定Azure库不重要的最大版本依赖性:

注意:需要提到的是,如果下次更新Newtonsoft.Json包,仍然需要按照上面的步骤升级Newtonsoft.Json包

我们如何让Nuget忽略特定Azure库不重要的最大版本依赖性

如果您确认Azure library可以与任何现代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命令在package Manager控制台中安装软件包Microsoft.Azure.Insights 0.15.0-preview:

安装软件包Microsoft.Azure.Insights-IncludePrerelease-IgnoreDependencies

使用-IgnoreDependencies选项,NuGet将忽略特定Azure库不重要的最大版本依赖性:


注意:需要指出的是,如果下次更新Newtonsoft.Json包,您仍然需要按照上述步骤升级Newtonsoft.Json包。

谢谢您的帮助。如前所述,我最初确实是这样做的,但现在我无法更新任何依赖于Json的/other/包,因为Nuget强调了洞察和Json之间的冲突Json@Igorek,是的,正如我在答覆中所说。如果下次更新Newtonsoft.Json包,您仍然需要卸载包Microsoft.Azure.Insights,然后更新Json包,重新安装Microsoft.Azure.Insights,并选择-IgnoreDependencies。这是nuget设计的。再说一次,既然您说过特定的Azure库可以与任何现代Json包一起使用,那么为什么不将Json包更新为最新版本呢?在这种情况下,你不需要在以后更新它。正如帖子所说,这只适用一次。但这肯定不是Nuget无法使用的解决方案。必须有更好的方法来引用依赖包,但覆盖不需要卸载的可传递依赖约束。它会让你很容易崩溃。谢谢你的帮助。如前所述,我最初确实是这样做的,但现在我无法更新任何依赖于Json的/other/包,因为Nuget强调了洞察和Json之间的冲突Json@Igorek,是的,正如我在答覆中所说。如果下次更新Newtonsoft.Json包,您仍然需要卸载包Microsoft.Azure.Insights,然后更新Json包,重新安装Microsoft.Azure.Insights,并选择-IgnoreDependencies。这是nuget设计的。再说一次,既然您说过特定的Azure库可以与任何现代Json包一起使用,那么为什么不将Json包更新为最新版本呢?在这种情况下,您不需要
稍后再更新。正如帖子所说,这只适用一次。但这肯定不是Nuget无法使用的解决方案。必须有更好的方法来引用依赖包,但覆盖不需要卸载的可传递依赖约束。它会使你的身体得到有效的破坏。