如何在Visual Studio 2015中使用C#7?


146

Visual Studio 2017(15.x)支持C#7,但是Visual Studio 2015(14.x)呢?

如何将C#7与之配合使用?



8
@SunilKumar:在VS 15(即VS 2017)中启用了它们。它在任何地方都没有提到VS 2015(即VS 14)。
乔恩·斯基特

Answers:


162

您可以通过安装Nuget包Microsoft.Net.Compilers将Visual Studio附带的编译器替换为启用C#7的版本:

引用此程序包将导致使用程序包中包含的C#和Visual Basic编译器的特定版本(而不是任何系统安装的版本)来构建项目。

没有迹象表明我可以在包页面上看到Visual Studio 2015是否正式支持此功能。到目前为止,我的不严格测试表明它可以正常运行,但并非不费吹灰之力-C#7代码可以编译,但是带有红色下划线表示语法错误的波浪线: 屏幕截图请注意,您还需要安装Nuget包System.ValueTuple才能使用新的C#7值元组功能。


9
在这种情况下,最好使用VIsual Studio代码,或者简单地安装Visual Studio 2017 Community
Panagiotis Kanavos

3
这是一件好事。因此,您可以知道紧急情况下其他开发人员可以使用您的代码的情况下,将某些项目缓慢切换到VS2017 。
ecth

10
请注意,虽然我在理论上同意@PanagiotisKanavos,但如果您的大中型公司VS2017 Community Edition的员工可能无法有效地用作被许可人,则请注意。我相信VS Code是真正的FOSS。
克里斯·马里西克

6
我在我的Xamarin.Forms UWP,Windows 8.1和Windows Phone 8.1项目中安装了最新的Microsoft.Net.Compilers nuget,以及最新的System.ValueTuple nuget(以及所有其他System。*系列nuget的最新版本)。 。在构建和运行时,一切似乎都可以正常工作。(我没有尝试调试器功能集的每一个
细节

13
VS2015.3,针对.NET 4.7.1进行编译:Microsoft.Net.Compilers is only supported on MSBuild v15.0 and above-我需要使用此版本:nuget.org/packages/Microsoft.Net.Compilers/2.4.0进行构建,然后工作正常。:)
CAD bloke

5

就我而言,仅安装Microsoft.Net.Compilers无效。相反,我必须执行以下操作:

  1. 为项目安装Microsoft.CodeDom.Providers.DotNetCompilerPlatform工具 => NuGet软件包管理器 => 管理解决方案的Nuget软件包...)并安装Microsoft.CodeDom.Providers.DotNetCompilerPlatform
  2. 为项目安装最新的Microsoft.Net.Compilers
  3. 为您要使用的最新C#功能安装任何其他NuGet软件包。就我而言,我的目标是使用Tuples,因此我安装了System.ValueTuple并运行良好。

但仍请注意,Visual Studio 2015默认编译器不知道的C#代码下面仍会出现红色花键。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.