2010-09-07 60 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的行为不同。