如何让csc.exe知道C#6

spr*_*t12 5 c# csc roslyn c#-6.0

我正在编译一个基本的控制台应用程序:

C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\csc.exe /t:exe /out:myapp.exe Program.cs
Run Code Online (Sandbox Code Playgroud)

首先打印:

Microsoft (R) Visual C# Compiler version 4.6.1038.0
for C# 5
Copyright (C) Microsoft Corporation. All rights reserved.
Run Code Online (Sandbox Code Playgroud)

然后失败,因为我正在使用字符串插值$"{x}".错误是:

error CS1056: Unexpected character '$'
Run Code Online (Sandbox Code Playgroud)

我认为这是因为csc.exe不明白C# 6.如何识别此编译器C# 6

Pat*_*man 6

您正在使用旧版本的编译器.从这篇MSDN论坛帖子中,C#编译器不再是.NET Framework的一部分.你必须自己下载.

你可以从这个NuGet语句中做到这一点:

nuget install Microsoft.Net.Compilers
Run Code Online (Sandbox Code Playgroud)

  • 如果您已安装Build Tools包,则"当前版本"也捆绑在C:\ Program Files(x86)\ MSBuild\14.0\Bin下. (3认同)