我不建议将ValueTuple.net Framework 项目作为包引用添加。如您所知,此程序集可从 4.7 .NET Framework 获得。
在某些情况下,您的项目将不惜一切代价尝试ValueTuple从 .NET Framework 文件夹而不是包文件夹中包含它,这可能会导致一些未找到程序集的错误。
我们今天在公司遇到了这个问题。我们有两个项目的解决方案(我过于简单化了):
Lib包括 ValueTuple 并Web使用Lib. 事实证明,Web在尝试解析路径时,由于某种未知原因ValueTuple,HintPath进入 .NET Framework 目录并采用了不正确的版本。我们的应用程序因此而崩溃。ValueTuple没有为该程序集定义.csproj,Web也没有HintPath为该程序集定义。这个问题非常奇怪。通常它会从包文件夹中复制程序集。这一次不正常。
System.*对我来说,添加包引用总是有风险的。它们通常就像定时炸弹。它们一开始还不错,但在最糟糕的时刻它们会在你的脸上爆炸。我的经验法则:如果没有真正需要,请不要将System.*Nuget 包用于.NET Framework 。
我们通过手动添加ValueTuple到项目.csproj内的文件中解决了我们的问题Web。