如何在命令行中确定C#编译器版本

ma.*_*ian 7 c#

是否有任何命令来获取C#编译器版本?该csc命令接缝有没有选项,以显示编译器版本.

PS当我csc开发人员命令提示符中输入命令对于VS2015,它返回:

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

但是我很确定我的C#编译器比1.3更新!

Han*_*ant 5

请记住,您的计算机上至少有两个版本的csc.exe.一个是作为.NET Framework安装的一部分提供的,就像它一直一样,并遵循框架的版本编号.存储在c:\ windows\microsoft.net\framework\v4.0.30319中,它保留在那里以与System.CodeDom和sgen.exe兼容.在C#语言版本5下冻结.大多数程序员现在将在他们的机器上安装.NET v4.7时使用版本4.7.x.0.

另一个作为Roslyn项目的一部分被分离出来并存储在MSBuild目录中.使用版本号重置从1再次开始编号.当您使用开发人员命令提示符时,将运行该版本号.版本号重置的最可能原因是他们希望不被锁定到框架发布节奏,Roslyn遭受了大量的错误,需要中间版本才能修复.由解耦引起的一个值得注意的问题是在C#v7中添加了新的ValueTuple类型,这是由大大改进的元组支持所要求的.编译器在框架可用之前发布,程序员不得不退回使用Nuget包一段时间.

版本号重置不会经常发生.但是每个人都知道的另一个好例子是.NETCore,它从5.0重置为1.0.除了"避免混淆"之外,我从来没有看到过一个可靠的理由,我认为这是让它看起来很新鲜的举动.