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

标签 c# .net compiler-version

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

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

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

反问:如果我做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 运行时可再发行组件,以确保您的客户拥有适用于您的应用程序的正确环境。

关于c# - C# 编译器是否设置版本或平台常量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/635011/

相关文章:

.net - 有人在真正的LOB应用程序中使用WPF吗?

java - 从安装的 java 8 JDK 编译 java 6

从另一个类调用方法后,C# 设置 Form Parent

c# - 如何将 Javascript 中的地理坐标转换为 C# 中的地理坐标

c# - xUnit Assert.All() 异步

c# - Linq 和 Dictionary 以及转换数组值

.net - 多列上的 LINQ COUNT

c# - 如何在 HTMLGenericControl 上注册服务器端点击?