2010-09-07 32 views
0

VS2010中的.NET命令行編譯器(csc.exe)是一個完整的.NET 4.0編譯器嗎?此外(這聽起來很愚蠢),如果我在.NET 4.0中編寫代碼,但它只使用.NET 2.0功能,除此之外沒有其他任何東西,它是否會使用.NET 2.0編譯器進行編譯?有關csc.exe的向後/向前兼容性的問題

Thanksa

回答

0

在Visual Studio 2010中,你可以使用新的編譯器目標從.NET 2.0框架的任何版本的.NET 4.0。

1

您需要區分.NET版本和C#版本。

如果您在VS 2010中編寫代碼(或者使用C#4編譯器進行編譯),但只能使用.NET 2.0框架中的C#2功能和目標類型,那麼是的,您可以使用C#2編譯器(在Visual Studio 2005中)也是如此。當然,您的項目文件可能無效,但原始源代碼應該沒問題。

請注意,您有時可以在不知道自己正在這樣做的情況下使用新功能,例如,以後版本的語言使先前無效的轉換有效,例如,可以更改選擇哪種方法重載或轉換方法被申請;被應用。這些是角落案件,但他們可能會發生。請注意,告訴csc使用舊版本編譯並不總是禁用這些轉換......有些情況下,C#3編譯器的行爲與C#4編譯器設置爲使用版本3的行爲不同。