C#编译器中是否有任何预定义的常量来检测所针对的平台版本?
我可以在Project选项中设置一个平台但是如何编写.NET 2和.NET 3.5的单一源代码?
编辑:我真的想编写一些代码,并能够使用#if CLR_VERSION35之类的东西切换行为,然后再进行不同的配置.
相反的问题:如果我制作CLR35和CLR20配置是否可以基于此选择目标平台?该选项在VS2008中不可用,我对MSBUILD还不是很了解.
.NET Framework 3.5是2.0的超集,因此所有2.0应用程序都应该在3.5上运行而无需修改.因为它是一个超集,如果你的应用程序发现自己在2.0上,就没有办法不再使用3.5功能了,不管怎么说都没有意义.
如果您需要定位2.0并且您可以在2.0中编写您需要的内容,那么这就是要走的路,3.5仍然会运行您的应用程序.实际上,您必须为最低公分母编写或在安装程序中包含3.5运行时可再发行组件,以确保您的客户具有适合您应用的正确环境.