C#编译器是否设置了版本或平台常量?

时间:2009-03-11 15:19:08

标签: c# .net compiler-version

C#编译器中是否有任何预定义常量来检测正在定位的平台版本?

我可以在Project选项中设置一个平台,但是如何编写.NET 2和.NET 3.5的单一源代码?

编辑:我真的想编写一些代码,并能够像#if CLR_VERSION35那样切换行为 然后是不同的配置。

相反的问题:如果我进行CLR35和CLR20配置,是否可以根据此选择目标平台?该选项在VS2008中不可用,我对MSBUILD还不是很了解。

3 个答案:

答案 0 :(得分:5)

.NET Framework 3.5是2.0的超集,因此所有2.0应用程序都应在3.5上运行而无需修改。因为它是一个超集,如果你的应用程序发现自己在2.0上,就没有办法不再使用3.5功能了,不管怎么说都没有意义。

如果您需要定位2.0,并且您可以在2.0中编写您需要的内容,那么就是这样,3.5仍然可以运行您的应用程序。实际上,您必须为最低标准编写代码,或者在安装程序中包含3.5运行时可再发行组件,以确保您的客户具有适合您应用的正确环境。

答案 1 :(得分:2)

在VS2008中,您可以在项目属性中设置目标框架(解决方案资源管理器,右键单击项目)。您还可以在创建新项目时选择,在新项目窗口的右上角有一个下拉列表。

答案 2 :(得分:1)

除了DEBUG和RELEASE,据我所知还没有。我会保存搜索并在项目属性中定义自己的内容,“构建”选项卡,“条件编译符号”。

有关this blog的更多信息,如果有任何用途