我刚刚下载了 Visual Studio 2017 RC,这是几天前发布并支持 C# 7。我可以使用 IDE 中的 C# 7 功能:
![](https://i.stack.imgur.com/h0BkD.png)
然而,这种行为似乎不适用于命令行。我正在从事一个项目,需要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 '='
很明显,它看起来像csc
在我的 PATH 中发现不支持 C# 7。我对此做了一些研究,发现了一个类似的问题对于 C# 6,建议检查以确保您正在调用csc
from %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。
有谁知道如何为以下版本启用 C# 7 功能csc
在命令行上?谢谢!