【发布时间】:2018-04-30 18:41:58
【问题描述】:
我正在将现有解决方案从 .NET 4.6.2 升级到 .NET 4.7。此解决方案依赖于几个针对 .NET 4.6.2 的 nuget 包,因此依赖于 nuget System.ValueTuple 包。
但升级后,我收到一大堆这些构建错误:
Error CS8179 Predefined type 'System.ValueTuple`2' is not defined or imported
我无法删除 System.ValueTuple 包,正如 cmets here 中所建议的那样,因为其他包依赖于它。 (如果我强迫它,它们似乎会爆炸。)
有什么建议吗?
2017 年 8 月 8 日更新
我发现我可以删除System.ValueTuple 包,并且我可以获得以这种方式编译的解决方案。但是,我在解决方案中有十几个 NuGet 包,它们似乎针对 .NET 4.6.2,因此需要 System.ValueTuple 作为依赖项。我可以安装这些,然后强制删除 System.ValueTuple 包,但如果其中任何一个包有更新,我安装更新 - 然后再次安装 System.ValueTuple 包,系统停止构建,直到我删除重新打包。
换句话说,我可以让它全部工作 - 但它看起来很尴尬和笨拙。肯定有更好的方法来解决这个问题吗?
【问题讨论】:
-
你使用的是什么版本的包?如果您更新到 ValueTuple 包的预发布版本 (4.4),我希望这个问题能够得到解决。
-
在 4.7 完成之前交付 VS2017 和 C# v7 简直就是一个巨大的错误。这些东西还没有完成,目标 4.7 还为时过早。你会让我非常头疼,我无法在我的机器上安装 4.7,也无法获得像样的诊断。最近处理 Microsoft 更新变得非常麻烦。稍等。
-
抱歉打嗝。我们刚刚推送了一个更新的(稳定的)System.ValueTuple 包,它完全支持 .NET Framework 4.7。请试一试。