如何在Visual Studio 2013中启用C#6.0function?

我正在浏览在C#6.0中引入的最新function,并且只是以自动属性初始值设定项为例,

class NewSample { public Guid Id { get; } = Guid.NewGuid(); } 

但是我的IDE没有识别这个语法。

我想知道如何在Visual Studio 2013中启用C#6.0。我使用的目标框架是4.5.1。

过时的预发布软件的信息:

据此,它只是一个安装和去Visual Studio 2013:

事实上,从这个版本安装C#6.0编译器只涉及安装一个Visual Studio 2013扩展,后者又更新了MSBuild目标文件。

所以只需从https://github.com/dotnet/roslyn获取文件,然后就可以开始了。;

您必须知道它是在那里实现的规范的过时版本,因为它们不再更新Visual Studio 2013的包

您也可以尝试在Visual Studio 2013之上安装的April的最终用户预览。(注意:这个VS 2013预览已经过时了,不再更新)

所以,如果你想使用最新版本,你必须下载Visual Studio 2015 。

在VS2013下,您可以将新的编译器作为nuget包安装到项目中。 这样,你不需要VS2015或更新的生成服务器。

https://www.nuget.org/packages/Microsoft.Net.Compilers/

 Install-Package Microsoft.Net.Compilers 

该包允许您使用/构buildC#6.0代码/语法。 因为VS2013本身并不能识别新的C#6.0语法, 所以它会在代码编辑器窗口中显示错误,虽然它可以正常生成

使用Resharper,你会在C#6function上得到扭曲的线条,但是灯泡可以让你select“为这个项目启用C#6.0支持”(设置保存为.DotSettings)。

正如@ stimpy77所提到的:为了支持MVC Razor视图,您需要额外的包 (对于那些不读取评论的人)

 Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform 

如果你想要完整的C#6.0支持,你需要安装VS2015。

值得一提的是,VS 2015用户构build时间将会增加

 Install-Package Microsoft.Net.Compilers 

那些使用VS 2015并且必须在项目中保留这个包的人可以修复增加的构build时间

编辑文件packages\Microsoft.Net.Compilers.1.2.2\build\Microsoft.Net.Compilers.props并清理它。 该文件应该如下所示:

 <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> </Project> 

这样做会迫使项目的构build像添加Microsoft.Net.Compilers包之前一样

如果您有Resharper,则可以在Visual Studio 2013中使用完整的C#6.0function。
你必须启用Resharper Build和voilá! 在Resharper选项 – >生成 – 启用Resharper生成并在“使用MSBuild.exe版本”select“最新安装”

这种方式Resharper将build立您的C#6.0项目,也不会强调C#6.0代码无效。

我也使用这个虽然我有Visual Studio 2015,因为:

  1. 由于某些原因,Resharper中的unit testing对Visual Studio 2015不起作用
  2. VS 2015比VS 2013使用了更多的内存。

我把这个放在这里,因为我正在寻找这个问题的解决scheme一段时间,也许它会帮助别人。

这似乎有一些误解。 所以,而不是试图修补VS2013在这里,并从微软的家伙回答: https ://social.msdn.microsoft.com/Forums/vstudio/en-US/49ba9a67-d26a-4b21-80ef-caeb081b878e/willc-c- 60不断地支持逐VS-2013?论坛=罗斯林

所以,请阅读并安装VS2015。