如何在Visual Studio 2017项目中启用C#7的所有function?

Visual Studio 2017发布之后,我想尝试使用新的C#7function创build简单的控制台项目。 我期望我只需下载新的Visual Studio 2017,然后创build新的控制台项目,并可以使用新的C#7function。 但我不能。

我可以使用一些function,如Tuples,如果我安装NuGet包System.ValueTuple 。

但对于其他function,我不知道我需要做什么。 例如这个NuGet问题 。

我现在需要做所有这些肮脏的安装吗? 或者我可以以更简单的方式启用c#7function?

对于在问题的第二部分中链接到的任意类任务types,您需要包含System.Threading.Tasks.Extensions包。

你需要这些NuGet包的原因是因为新的语言function依赖于添加到.NET框架中的新types。 C ++语言特性所依赖的新types将不会被“内置到框架”中,直到4.6.2之后发布的下一个小版本才不会中断SemVer 1 。 所以除非你使用这个框架的下一个版本构build一个项目,否则你将需要使用NuGet包来使这个function正常工作。

这与在.NET 2.0项目中使扩展方法工作没有什么不同 。 您可以使用扩展方法,但是您需要使用NuGet包(或者自己添加代码)来获取它所依赖的types以将其添加到项目中。


1:所以4.7或5.0,无论他们决定调用它,如果有一个4.6.3它不会在该版本,因为这不是一个小版本的凹凸,这是一个补丁版本凹凸,你不能修补程序版本中的API更改不会违反语义版本。

任何面向.NET 4.7的项目都可以使用C#7元组,而无需添加Nuget包。 你将不得不手动安装它:

  1. 升级到Windows 10 Creator's Update(10.0.15063),或在其他版本的Windows上安装.NET Framework 4.7: https : //www.microsoft.com/en-us/download/details.aspx? id=55170
  2. 从“开始”菜单中,运行Visual Studio Installer ,然后单击“修改”。 转到“单个组件”并检查以下两个组件:
    • .NET Framework 4.7 SDK
    • 定位包的.NET Framework 4.7

它不能在Windows 10 Creator更新中直接使用,因为Microsoft从“.NET桌面环境”工作负载中省略了.NET 4.7组件。 我提出了一个错误,但他们把它closures了,不是一个错误:

您必须在“开始”菜单中find安装程序,因为Microsoft从应用程序和function中破坏了“修改”(以前称为“程序和function”)。 他们“正在努力在未来的版本中改进这一点”。

Vs2017更新3可以支持c#7.1,但默认configuration为支持c#7.0。

您可以修改项目的设置并selectc#7.1

更多详细信息如何configurationvs2017.3以支持最新版本的c#7.1