Has*_*aan 198 c# visual-studio visual-studio-2013 c#-6.0
我正在阅读C#6.0中介绍的最新功能,并且只是按照自动属性初始化程序的示例,
class NewSample
{
public Guid Id { get; } = Guid.NewGuid();
}
Run Code Online (Sandbox Code Playgroud)
但我的IDE无法识别语法.
我想知道如何在Visual Studio 2013中启用C#6.0.我使用的Target框架是4.5.1.
Dav*_*ere 177
在VS2013下,您可以将新编译器作为nuget包安装到项目中.这样您就不需要VS2015或更新的构建服务器.
https://www.nuget.org/packages/Microsoft.Net.Compilers/
Install-Package Microsoft.Net.Compilers
Run Code Online (Sandbox Code Playgroud)
该软件包允许您使用/构建C#6.0代码/语法.因为VS2013本身不能识别新的C#6.0语法,所以它会在代码编辑器窗口中显示错误,尽管它可以正常构建.
使用Resharper,您将在C#6功能上获得波浪线,但灯泡为您提供了"为此项目启用C#6.0支持"选项(设置保存为.DotSettings).
正如@ stimpy77所提到的:对于MVC Razor视图中的支持,你需要一个额外的包(对于那些没有阅读注释的人)
Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform
Run Code Online (Sandbox Code Playgroud)
如果您需要完整的C#6.0支持,则需要安装VS2015.
Pat*_*man 63
根据这个,它只是一个安装并去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.
这里的很多答案都是在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 中的包管理器控制台运行它:
PM> Install-Package Microsoft.Net.Compilers -Version 1.3.2
Run Code Online (Sandbox Code Playgroud)
然后重新启动 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,版本=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' 或其依赖项之一。系统找不到指定的文件。确认声明正确,程序集及其所有依赖项可用,并且任务包含实现 Microsoft.Build.Framework.ITask 的公共类。
更新自从发布此答案后我注意到的一件事是,如果您在调试期间更改任何代码(“编辑并继续”),您会发现您的 C#6.0 代码会突然显示为错误,似乎恢复为C#6.0 之前的环境。这需要重新启动调试会话。非常烦人,尤其是对于 Web 应用程序。
| 归档时间: |
|
| 查看次数: |
118873 次 |
| 最近记录: |