【发布时间】:2021-12-02 16:40:43
【问题描述】:
所以这很容易重现。创建一个 .Net Framework 4.7.2 项目并添加 System.Text.Json nuget 包(v 5.0.2),看到它说它将添加包括 System.ValueTuple 在内的依赖包。
但据我了解不应该。
.Net Framework 4.7.2 是 .Net Standard 2.0(请参阅此处 https://docs.microsoft.com/en-us/dotnet/standard/net-standard)并在 BCL 中包含 System.ValueTuple。
我们可以在 nuget 网站上看到 System.Text.Json https://www.nuget.org/packages/System.Text.Json 对于 .net 标准 2.0 System.ValueTuple 不是依赖项
但它适用于框架 4.6.1
所以这是一个大问题......当我的项目针对 4.7.2(即 .Net Standard 2.0)时,为什么 nuget 会解决 4.6.1 的依赖关系??
【问题讨论】:
-
根据this GitHub issue:“如果库仅是 netstandard,net472 会选择它。如果库有任何 net framework 目标,net472 会选择它。”所以这是预期的行为,如果不是特别明显的话。
-
@RichardDeeming 谢谢!显然解决问题将是最好的结果,但实际上理解它是紧随其后的。我真的很难找到这方面的信息,所以非常感谢您分享链接。我会认为你的评论值得回答,这样我就可以给你一些我们都渴望的甜蜜的互联网点
标签: c# nuget .net-standard .net-standard-2.0 .net-framework-4.8