2017-04-24 37 views
-1

我知道我有C#6编译器,并且经常使用C#6功能,当我编写应用程序来练习时,我通常以.NET v4.6为目标。C#4,5和6编译器的特定版本号以及如何知道Visual Studio用于编译我的项目的具体版本号是什么?

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

当我在.NET Framework 4版目录键入csc.exe,它显示我的编译器版本为4.6.1098.0为C#5,这是非常令人困惑。

C:\ WINDOWS \ Microsoft.NET \ Framework64 \ v4.0.30319> CSC微软(R)为C#5版权所有(C)微软 公司 的Visual C#编译器版本4.6.1098.0。版权所有。

此编译器作为Microsoft(R).NET Framework的一部分提供, 但仅支持C#5以下的语言版本,该版本不再是最新版本的 。对于支持C# 编程语言的较新版本的编译器,看 http://go.microsoft.com/fwlink/?LinkID=533240

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

C:\ WINDOWS \ Microsoft.NET \ Framework64 \ v4.0.30319> CSC微软(R)为C#5版权所有(C)微软 公司 的Visual C#编译器版本4.6.1055.0。版权所有。

该编译器提供作为Microsoft(R).NET框架, 的一部分,但只支持语言版本多达C#5,这不再是 最新版本。对于支持C# 编程语言的较新版本的编译器,看 http://go.microsoft.com/fwlink/?LinkID=533240

观察它的C#5读取4.6.1055.0。

  1. 所以,我的第一个问题是:C#编译器对于C#4,5和6有哪些不同的版本号?

  2. 二,我如何知道csc.exe文件的哪个版本,以及哪个版本的C#编译器,我的Visual Studio安装是用来编译我的文件的?为了自己尝试,我在每台机器上都创建了一个控制台应用程序,并追踪项目文件。他们都为MS Build bin文件夹中的Microsoft.Csharp.targets文件提供了MS Build Import指令。但是我放弃了阅读该文件,因为我还没有完全理解所有的MS Build标签。

+0

不是真正的肯定,问题是在这里。 C#5显然使用了编译器的4.6版本。混淆来自哪里?另一个数字(“1098”)只是一个小修订/内部版本号;据推测,对C#编译器进行了多次修改。你尝试的第一个系统有一个稍微更新的版本,可能是一个或两个错误修复。它们都是C#5.另外,编译器向后兼容,这意味着C#5编译器可以定位到旧版本的C#。您可以使用项目选项和/或编译器开关进行配置。 –

+0

[C#编译器版本和语言版本之间的区别]可能的重复(http://stackoverflow.com/questions/22814922/difference-between-c-sharp-compiler-version-and-language-version) – EpicKip

+0

@CodyGray您可能是对的。我问的原因是:在VS 2013机器上,诸如“CallerMemberAttribute”之类的C#5功能不起作用。我想知道哪个版本的C#编译器VS 2013用来编译我的代码。 –

回答

1

什么是C#编译器为C#4,5和6的不同的版本号?

由于采用了最新C#版本here时,Visual Studio 2010和Visual Studio 2013是使用C#4 & 5编译器,同样科迪格雷说,的编译器是向后兼容的,这意味着C#5编译可以定位旧版本的C#。因此它们都是C#5.此外,starting with Visual Studio 2013,MSBuild和C#编译器现在作为独立软件包Microsoft®Build Tools提供。这个软件包安装与Visual Studio 2013然后你就可以从路径获得的C#6版本号:C:\ Program Files文件(x86)的\微软的Visual Studio 14.0

我怎么知道哪个版本csc.exe文件,以及哪个版本的C#编译器,我的Visual Studio安装用于编译我的文件?

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

enter image description here

+0

是否C#编译器*始终作为独立程序包提供?最初,它随.NET Framework一起提供。我不确定这是否仍然如此,因为在过去的几个版本中,我一直在避免使用.NET。 –

+0

是的,C#编译器作为独立软件包提供,并随Visual Studio 2013一起提供.net Framwork,从Visual Studio附带的VS2013 C#编译器开始。 –

相关问题