使用3.0编译器构建但针对2.0框架的DLL是否肯定会在仅运行2.0的机器上运行?
详细说明: 到目前为止,我们一直在使用.NET 2.0编译器进行构建,以确保与2.0运行时兼容。现在我们想要包含一些包含3.0语法的第三方源代码,但我们仍然需要与2.0运行时兼容。因此,我们正在考虑为我们的生产版本更改为3.0编译器,但针对2.0框架。
虽然看起来这应该有用,但它有点吓人,所以我们真的很想听听那些试过这个的人。
答案 0 :(得分:3)
在仍然以2.0运行时为目标时,您可以使用以下C#3功能:
您可以在2.0运行时使用以下C#3功能hack:
您不能使用以下内容:
答案 1 :(得分:0)
是,它会起作用,因为编译器扩展只是语法糖。只需确保它使用正确的服务包。
答案 2 :(得分:0)
只要第三方库不引用不在目标运行时的库,你就可以了。 C#3.0与C#2.0一样编译为IL代码,所有语法添加仅限于C#语言。
答案 3 :(得分:0)
没关系。 .NET 3.5和C#3.0编译器的输出与.NET 2.0编译器二进制兼容。