2017-04-24 209 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#編譯器開始。 –

相關問題