Visual Studio 2017发布后,我想尝试使用新的C#7功能创建简单的控制台项目。我希望我只需下载新的Visual Studio 2017,然后创建新的控制台项目,并可以使用新的C#7功能。但我不能。
我可以使用某些功能,例如我安装NuGet package System.ValueTuple时的元组。
但是对于其他功能,我不知道我需要做什么。例如this NuGet issue。
我现在需要进行所有这些脏安装吗?或者我可以用更简单的方式启用c#7功能?
答案 0 :(得分:34)
对于您在问题的第2部分中链接到的任意任务类型,您需要包含System.Threading.Tasks.Extensions
包。
您需要这些NuGet包的原因是因为新语言功能依赖于添加到.NET框架的新类型。 C#语言功能所依赖的新类型不会内置于框架中。直到4.6.2之后发布的下一个次要版本不打破SemVer 1 。因此,除非您使用下一版本的框架构建项目,否则您将需要使用NuGet包来使功能生效。
This is no different than getting extension methods to work in a .NET 2.0 project。您可以使用扩展方法,但需要使用NuGet包(或自己添加代码)以使其依赖的类型添加到项目中。
1:所以4.7或5.0,无论他们决定调用它,如果有4.6.3它将不会在那个版本中,因为那不是一个小版本的版本凹凸,那是一个补丁版本的凹凸并且您无法在不违反语义版本控制的情况下在补丁版本中进行API更改。
答案 1 :(得分:21)
任何针对.NET 4.7的项目都可以在不添加Nuget包的情况下使用C#7元组。你必须手动安装它:
Visual Studio Installer
,然后单击“修改”。转到“单个组件”并检查以下两个组件:
它在Windows 10 Creator的更新中无法正常使用,因为Microsoft从“.NET桌面环境”工作负载中省略了.NET 4.7组件。我提交了一个错误,但他们将其关闭为“不是错误”:
答案 2 :(得分:2)
Vs2017 update 3可以支持c#7.1,但默认配置为支持c#7.0。
您可以修改项目设置并选择c#7.1
了解更多详情how to configure vs2017.3 to support last version of c#7.1