我刚刚下载了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版本,都应使用其专用提示并加载适当的环境变量。