我刚刚下载了Visual Studio 2017 RC,它是released a few days ago,并支持C#7.我可以从IDE中使用C#7功能:

但是,此行为似乎并不适用于命令行。我正在一个需要csc可执行文件来处理C#7和更高版本的项目。但是,当我尝试更改为与项目相同的目录并编译文件时,我得到了

> csc Program.cs /target:exe
Microsoft (R) Visual C# Compiler version 1.3.1.60616
Copyright (C) Microsoft Corporation. All rights reserved.

Program.cs(12,23): error CS1026: ) expected
Program.cs(12,25): error CS1001: Identifier expected
Program.cs(12,25): error CS1002: ; expected
Program.cs(12,26): error CS1002: ; expected
Program.cs(12,26): error CS1513: } expected
Program.cs(13,32): error CS1003: Syntax error, '=>' expected
Program.cs(13,32): error CS1525: Invalid expression term '='

显然,看起来在我的PATH中找到的csc版本不支持C#7。我对此进行了一些研究,发现了C#6的similar question,建议检查以确保您从csc而不是从%PROGRAMFILES(x86)%\MSBuild\14.0\Bin调用较旧的来自C:\Windows\Microsoft.NET\Framework\4.0.30319,因为后者仅支持C#5。所以我做到了:
> where csc
C:\Program Files (x86)\MSBuild\14.0\Bin\csc.exe
C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe

如您所见,从MSBuild\14.0\Bin目录中选择了一个,而不是v4.0.30319中的旧选择。我还运行了csc /version,它告诉我csc的版本为1.3.1.60616,实际上仅支持C#6。

有谁知道如何在命令行上为csc版本启用C#7功能?谢谢!

最佳答案

您必须启动“VS 2017 RC开发人员命令提示符”。然后,您可以看到csc.exe的版本号为2.0。

众所周知,对于每个新的VS版本,都应使用其专用提示并加载适当的环境变量。

10-06 07:54