.NET 4的条件编译

可能重复:
C#条件编译和框架目标

我有一些代码可以在.NET 4中运行但在.NET 3.5中不起作用,在.NET 3.5中它需要使用对Windows的互操作调用。

我想使用“ifdef”在两种情况下使用不同的代码路径(最终我将弃用.NET 3.5代码)。

是否有预定义的指令值来确定何时使用.NET4编译代码? 是否有与所有预定义指令(DEBUG,TRACE,…)的良好链接? 以下链接仅提供指令,但不提供标准预定义值:

http://msdn.microsoft.com/en-us/library/ed8yd1ha(v=VS.100).aspx

编译器不知道任何特定的.NET Framework版本。 它看到的只是参考组件。 也不保证您的程序将使用您定位的.NET版本运行。 即使您为2.0构建,也很可能使用.NET 4.0 CLR运行

请改用Environment.Version

我认为这就是你要找的东西:

 #if NET40 ... #elif NET35 ... #else NET20 ... #endif