无法使用Visual Studio 2017年和C#7.0

问题描述:

我已经安装了Visual Studio 2017年社区已发布的一个星期前从方法返回元组,我就开始探索的C#7无法使用Visual Studio 2017年和C#7.0

新的功能,所以我创建

class Program 
{ 
    static void Main(string[] args) 
    { 

     (int sum, int count) a = ReturnTwoValues(); 
    } 

    static (int sum, int count) ReturnTwoValues() => (1, 1); 
} 

编译器产生一个错误::

Error CS8137 Cannot define a class or member that utilizes tuples because the compiler required type 'System.Runtime.CompilerServices.TupleElementNamesAttribute' cannot be found. Are you missing a reference?

我试图找到在具有此名称的框架的引用,但没有运气返回两个值的简单方法!

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

+0

[在asp.net应用程序中启用c#7]的可能副本(https://*.com/questions/42744689/enabling-c-sharp-7-in-a-asp-net-application) –

我只是通过这个页面跑Roslyn它描述了以下步骤来得到这个工作:

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

enter image description here

Followi这些步骤,现在它正在工作。但是我们需要为我们开始的每一个项目都做到这一点,这真的很奇怪!希望这一点在我们达到正式版本后得到解决!

+2

One应该在下一个版本中的东西是一个代码修复,可以让您轻松添加软件包。 – svick

+6

这个解决方案帮助了我;即使是在2017年3月下载的VS2017 Professional的完整版本! – Nij

+0

这确实让使用元组的球滚动 –

,我开始收到此错误后,我安装了.NET 4.7框架,并改变了我的项目面向.NET 4.7

ValueTuple现在包括与.net 4.7,所以您不必手动引用ValueTuple 。

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

+0

很好,遵循你的建议,现在它已经包含在.NET 4中。7,不需要再从NuGet安装。谢谢。 –