首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >升级到System.ValueTuple 4.7后“未定义或导入预定义类型.NET”

升级到System.ValueTuple 4.7后“未定义或导入预定义类型.NET”
EN

Stack Overflow用户
提问于 2017-07-27 01:34:53
回答 2查看 12.3K关注 0票数 21

我正在将现有解决方案从.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包,因为其他包依赖于它。(如果我强制的话,他们似乎就会爆炸。)

有什么建议吗?

更新8/8/17

我已经知道我可以删除System.ValueTuple包,并且可以通过这种方式获得编译的解决方案。但是,解决方案中有十几个NuGet包,它们的目标似乎是.NET 4.6.2,因此需要将System.ValueTuple作为依赖项。我可以安装这些包,然后强制删除System.ValueTuple包,但是如果其中任何一个包都有更新,并且我安装了更新--那么System.ValueTuple包将再次安装,系统将停止构建,直到我再次删除包。

换句话说,我可以把一切都做好--但这看起来很尴尬,很疯狂。当然有更好的方法来解决这个问题吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-09 18:58:45

是的,升级到System.ValueTuple 4.4.0

原因如下:

NuGet包System.ValueTuple提供了C#元组语法所需的ValueTuple类型。在.NET Framework4.7中,我们直接将类型添加到mscorlib中。如果同时使用NuGet包以及.NET Framework4.7,您将多次看到相同的类型。这会导致类似于Stack溢出报告的问题。 我们更新了NuGet包,将.NET Framework4.7上的元组类型输入到mscorlib。这统一了类型,从而允许您使用依赖于NuGet的其他库和System.ValueTuple包,同时仍然以.NET Framework4.7为目标。

发布说明

票数 29
EN

Stack Overflow用户

发布于 2018-04-30 10:41:58

在Visual中,NuGet包System.ValueTuple提供ValueTuple类型。因此,将System.ValueTuple更新到最新版本v4.4.0。意味着将System.ValueTuple升级到比当前或上一个版本更高的版本。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45339914

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档