• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

安装VS 2017后,为什么命令行csc不能编译C#7?

c/c++ 来源:James Ko 7次浏览

我刚刚下载的Visual Studio 2017年RC,这是released a few days ago并附带了C#7,我可以使用C#从IDE 7.0功能的支持:安装VS 2017后,为什么命令行csc不能编译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 '=' 

所以很明显,它看起来像版本的csc我的路径中发现不支持C#7,我做了一个在这个小小的研究,发现了一个similar question为C#6,这表明检查,以确保您调用从%PROGRAMFILES(x86)%\MSBuild\14.0\Bin代替旧的C:\Windows\Microsoft.NET\Framework\4.0.30319csc,因为后者只支持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在命令行版本?谢谢!


===========解决方案如下:

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

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


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)