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/