C# 编译器中是否有任何预定义的常量来检测目标平台的版本?
我可以在项目选项中设置平台,但如何为 .NET 2 和 .NET 3.5 编写单一源代码?
编辑:我真的很想编写一些代码,并且能够使用#if CLR_VERSION35 之类的东西来切换行为,然后运行不同的配置。
反过来的问题:如果我进行 CLR35 和 CLR20 配置,是否可以基于此选择目标平台?该选项在 VS2008 中不可用,我对 MSBUILD 还不太了解。
C# 编译器中是否有任何预定义的常量来检测目标平台的版本?
我可以在项目选项中设置平台,但如何为 .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 运行时可再发行组件,以确保您的客户为您的应用程序提供正确的环境。
在 VS2008 中,您可以在项目属性中设置目标框架(解决方案资源管理器,右键单击项目)。您还可以在创建新项目时选择,在新项目窗口的右上角有一个下拉菜单。
据我所知,除了 DEBUG 和 RELEASE 之外,还没有。我会保存搜索并在项目属性“构建”选项卡“条件编译符号”中定义我自己的。
如果有任何用处,请在此博客上提供更多信息