关于.net:C#4,5和6编译器的具体版本号是什么,以及如何知道Visual Studio用于编译我的项目?

What are the specific version numbers of the C# 4, 5 and 6 compilers and how to know which one Visual Studio is using to compile my project?

我知道我有C 6编译器,我经常使用C 6特性,当我编写应用程序进行实践时,我通常以.NET v4.6为目标。

在这台机器上,我安装了Visual Studio 2010、2013、2015和2017。

当我从.NET Framework v4目录中键入csc.exe时,它将编译器版本显示为4.6.1098.0 for C_5,这非常令人困惑。

0

当我在另一台安装了Visual Studio 2013的笔记本电脑上键入相同的命令时,我从csc.exe命令得到以下输出。

C:\Windows\Microsoft.NET\Framework64\v4.0.30319>csc Microsoft (R)
Visual C# Compiler version 4.6.1055.0 for C# 5 Copyright (C) Microsoft
Corporation. All rights reserved.

This compiler is provided as part of the Microsoft (R) .NET Framework,
but only supports language versions up to C# 5, which is no longer the
latest version. For compilers that support newer versions of the C#
programming language, see
http://go.microsoft.com/fwlink/?LinkID=533240

观察C 5读数为4.6.1055.0。

  • 所以,我的第一个问题是:C 4、5和6的C编译器的不同版本号是什么?

  • 其次,我如何知道我的Visual Studio安装使用的是哪个版本的csc.exe文件,以及哪个版本的C编译器来编译我的文件?为了自己尝试,我在两台机器上各创建了一个控制台应用程序,并跟踪项目文件。他们都有一个MS build Import指令,用于MS build bin文件夹中的Microsoft.Csharp.targets文件。但我放弃了从该文件内部阅读,因为我仍然不完全理解所有MS构建标记。


  • 0

    作为最新的C版本,Visual Studio 2010和Visual Studio 2013使用C 4&5编译器,正如Cody Gray所说,编译器向后兼容,这意味着C 5编译器可以针对旧版本的C。所以它们都是C 5。此外,从Visual Studio 2013开始,msbuild和c编译器现在可以作为独立的软件包Microsoft提供?构建工具。此包随Visual Studio 2013一起安装。然后,您可以从以下路径获取C 6的版本号:C:Program Files(x86)Microsoft Visual Studio 14.0

    how do I know which version of the csc.exe file, and thus which version of the C# compiler, my Visual Studio installation is using to compile my files?

    msbuild文件夹中的csc.exe文件是msbuild内部使用的文件。您可以从以下路径获得C编译器版本:C:\Program Files (x86)\Microsoft Visual Studio 14.0\csc.exe

    enter image description here