4

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

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

编辑:我真的很想编写一些代码,并且能够使用#if CLR_VERSION35 之类的东西来切换行为,然后运行不同的配置。

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

4

3 回答 3

5

.NET Framework 3.5 是 2.0 的超集,因此所有 2.0 应用程序都应该在 3.5 上运行而无需修改。因为它是一个超集,所以如果您的应用程序发现自己在 2.0 上,那么没有办法不使用 3.5 功能,这无论如何都没有意义。

如果您需要以 2.0 为目标,并且可以在 2.0 中编写您需要的内容,那么这就是要走的路,3.5 仍然可以正常运行您的应用程序。实际上,您必须编写最小公分母或在安装程序中包含 3.5 运行时可再发行组件,以确保您的客户为您的应用程序提供正确的环境。

于 2009-03-11T15:29:41.503 回答
2

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

于 2009-03-11T15:23:47.027 回答
1

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

如果有任何用处,请在此博客上提供更多信息

于 2009-03-11T15:40:56.377 回答