C# 根据操作系统或框架跳过方法的编译

C# 根据操作系统或框架跳过方法的编译,c#,.net,visual-studio-2008,compact-framework,C#,.net,Visual Studio 2008,Compact Framework,在VisualStudio2008中,我有一个类,它在同一解决方案中的两个项目之间共享 我添加了一些对“ImageConverter”类的调用,该类在完整的.Net框架上可用,但在Compact框架上不可用 它只在完整的框架项目中使用,编译效果很好。但是当我编译Compact Framework项目时,它显然会出错,因为这个类不可用 如果方法是紧凑框架或WinCE目标项目,是否有办法让编译器跳过该方法。您可以使用条件编译或预处理器指令,如 #if CE .... #else ... #end

在VisualStudio2008中,我有一个类,它在同一解决方案中的两个项目之间共享

我添加了一些对“ImageConverter”类的调用,该类在完整的.Net框架上可用,但在Compact框架上不可用

它只在完整的框架项目中使用,编译效果很好。但是当我编译Compact Framework项目时,它显然会出错,因为这个类不可用


如果方法是紧凑框架或WinCE目标项目,是否有办法让编译器跳过该方法。

您可以使用条件编译或预处理器指令,如

#if CE
 ....
#else
 ...
#endif

您可以在项目属性中为每个生成配置定义一组活动指令。

我找到了问题的解决方案

在“构建”选项卡下的项目属性中,有“条件编译符号”。在此处添加一个符号,例如WindowsCE

在代码内部,现在可以使用#if#endif对要跳过的部分代码进行分组

例如

#if !WindowsCE

    // Some WindowsCE unsupported code here. 

#endif
编译器现在将跳过此部分