如何在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,因为:
- 由于某些原因,Resharper中的unit testing对Visual Studio 2015不起作用
- 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。