繁体   English   中英

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

[英]How to enable C# 6.0 feature in Visual Studio 2013?

我正在阅读C#6.0中介绍的最新功能,并且只是按照自动属性初始化程序的示例,

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

但我的IDE无法识别语法。

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

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

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

Install-Package Microsoft.Net.Compilers

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

使用Resharper,您将在C#6功能上获得波浪线,但灯泡为您提供了“为此项目启用C#6.0支持”选项(设置保存为.DotSettings)。

正如@ stimpy77所提到的:对于MVC Razor视图中的支持,你需要一个额外的 (对于那些没有阅读注释的人)

Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform

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

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

根据这个,它只是一个安装并去Visual Studio 2013:

实际上,从此版本安装C#6.0编译器只需安装Visual Studio 2013扩展,而后者又会更新MSBuild目标文件。

所以只需从https://github.com/dotnet/roslyn获取文件即可开始使用。

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

您还可以尝试安装在Visual Studio 2013之上的April's End User Preview。(注意:此VS 2013预览已过时,不再更新)

因此,如果您确实要使用最新版本,则必须下载Visual Studio 2015

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

Install-Package Microsoft.Net.Compilers

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

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

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

这样做会强制在添加Microsoft.Net.Compilers包之前构建项目

这里的很多答案都是在Roslyn (开源.NET C#和VB编译器)转移到.NET 4.6之前编写的。 因此,如果您的项目以4.5.2为目标(继承且无法更改),他们将无法帮助您。

但是你可以从https://www.nuget.org/packages/Microsoft.Net.Compilers获取以前版本的Roslyn并安装它而不是最新版本。 我使用1.3.2。 (我尝试了2.0.1 - 这似乎是在.NET 4.5上运行的最后一个版本 - 但我无法编译*。)从VS 2013中的Package Manager控制台运行它:

PM> Install-Package Microsoft.Net.Compilers -Version 1.3.2

然后重新启动Visual Studio。 我最初遇到了一些问题; 您需要将C#版本设置回默认值 (C#6.0不会出现在版本列表中,但似乎已成为默认值),然后清理,保存,重新启动VS并重新编译。

有趣的是,由于代码中使用了C#6.0特性,我没有任何IntelliSense错误(这是首先想要C#6.0的原因)。

*版本2.0.1抛出错误“Microsoft.CodeAnalysis.BuildTasks.Csc任务无法从程序集Microsoft.Build.Tasks.CodeAnalysis.dll加载。无法加载文件或程序集'Microsoft.Build.Utilities.Core,Version = 14.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'或其中一个依赖项。系统找不到指定的文件。确认声明是否正确,程序集及其所有依赖项是否可用,以及该任务是否包含实现Microsoft.Build.Framework.ITask的公共类。

更新自发布此答案后我注意到的一件事是,如果您在调试期间更改任何代码(“编辑并继续”),您会发现您的C#6.0代码将突然显示为似乎恢复到的错误一个pre-C#6.0环境。 这需要重新启动调试会话。 非常烦人,特别是对于Web应用程序。

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

这样Resharper将构建您的C#6.0项目,并且也不会将C#6.0代码强加为无效。

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

  1. 由于某种原因,Resharper中的单元测试对我来说不适用于Visual Studio 2015
  2. VS 2015比VS 2013使用更多内存。

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

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

所以,请阅读并安装VS2015。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM