无法从使用Visual Studio 2017和C#7.0的方法返回Tuple

我已经安装了一周前发布的Visual Studio 2017社区,并且开始探索C#7的新function。

所以我创build了一个返回两个值的简单方法:

class Program { static void Main(string[] args) { (int sum, int count) a = ReturnTwoValues(); } static (int sum, int count) ReturnTwoValues() => (1, 1); } 

编译器生成一个错误:

错误CS8137无法定义使用元组的类或成员,因为无法find编译器所需的types“System.Runtime.CompilerServices.TupleElementNamesAttribute”。 你错过了一个参考吗?

我尝试在这个名字的框架中find一个引用,但没有运气!

如果我们需要额外的东西来使用C#7.0的function,那么我们需要为每个项目做到这一点是非常奇怪的!

我刚刚浏览了Roslyn上的这个页面,其中描述了以下步骤来实现这个工作:

  1. 启动一个C#项目
  2. 从NuGet添加对System.ValueTuple包的引用(预发布)

在这里输入图像说明

遵循这些步骤,现在正在工作。 但是我们开始的每个项目都需要这样做,这真的很奇怪。 希望这是固定的,当我们达到官方发布!

我在安装.Net 4.7 Framework之后开始出现这个错误,并将我的项目改为了.Net 4.7

ValueTuple现在包含在.Net 4.7中,所以您不必手动引用ValueTuple。

所有我必须做的纠正编译错误是从我的项目的引用删除对System.ValueTuple的引用。