关于csc.exe的向后/向前兼容性的问题

时间:2010-09-07 21:37:20

标签: .net

VS2010中的.NET命令行编译器(csc.exe)是完整的.NET 4.0编译器吗?此外(这可能听起来很愚蠢),如果我在.NET 4.0中编写代码,但它只使用.NET 2.0功能,除此之外什么都没有,它会用.NET 2.0编译器编译吗?

Thanksa

2 个答案:

答案 0 :(得分:1)

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

如果您在VS 2010中编写代码(或者使用C#4编译器进行编译)但只使用C#2功能并且只使用.NET 2.0框架中的目标类型,那么是的,您将能够使用C#进行编译2编译器(在Visual Studio 2005中)也是如此。当然,您的项目文件可能有效,也可能无效 - 但原始源代码应该没问题。

请注意,您有时可以使用新功能,而不会意识到您正在这样做 - 例如,语言的更高版本使之前无效的转换有效,可以更改选择的方法重载或方法转换是什么应用。这些是极端情况,但它们可能发生。请注意,告诉csc使用旧语言版本进行编译并不总是禁用这些转换...在某些情况下,C#3编译器的行为与使用版本3的C#4编译器集的行为不同。

答案 1 :(得分:0)

在Visual Studio 2010中,您可以使用新编译器将任何框架版本从.NET 2.0定位到.NET 4.0。

相关问题