有没有命令可以获取C#编译器版本?
csc
命令似乎没有选项可以显示编译器版本。
P.S.
当我在 Visual Studio 2015开发人员命令提示符 中输入 csc
命令时,它会返回:
Microsoft (R) Visual C# Compiler version 1.3.1.60616
Copyright (C) Microsoft Corporation. All rights reserved.
但我很确定我的 C# 编译器比 1.3 版本更新!
有没有命令可以获取C#编译器版本?
csc
命令似乎没有选项可以显示编译器版本。
P.S.
当我在 Visual Studio 2015开发人员命令提示符 中输入 csc
命令时,它会返回:
Microsoft (R) Visual C# Compiler version 1.3.1.60616
Copyright (C) Microsoft Corporation. All rights reserved.
但我很确定我的 C# 编译器比 1.3 版本更新!
c:\>csc /version
2.3.2.62116 (8522b473)
%errorlevel%
,以放置在过时的存储桶中。/version
在https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-options/listed-alphabetically上并没有出现(似乎是最新版本),我找不到任何列出它被添加到哪个版本的东西。
更新: 我也会非常小心地注意csc报告的版本号,例如我的个人“默认”版本位于C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Professional \ MSBuild \ 15.0 \ Bin \ Roslyn
,版本为2.3.2.62116
(文件日期为2017年9月22日),但我还有C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ csc.exe
,版本为4.7.2046.0
(文件日期为2017年3月18日)(不使用/ version开关)。
所以回答
有没有命令可以获取C#编译器版本?
我会说,是的,也许有时候,但我会对那个版本持怀疑态度。从我拥有的版本戳来看,报告的版本是csc.exe程序集的文件版本,该程序集似乎来自编译csc的“更大实体”的版本,而Rosyln和“传统”编译器至少有不兼容的编号方案。
/version
参数在 Roslyn 的第二个版本中得以实现。https://github.com/dotnet/roslyn/issues/7588 - Cameron MacFarland