是否有编译符号来检测紧凑框架?

时间:2010-04-16 20:07:44

标签: c# .net windows compact-framework mobile

是否有编译符号来检测它是否在紧凑的框架平台上运行

2 个答案:

答案 0 :(得分:11)

您的问题中存在不连续性。你问的是一个编译符号,所以只在设计时存在,并在运行时检测一个条件。那么问题是你实际上是在追求哪一个?

如果您想在运行时知道您是否在CF下,请检查Environment.OSVersion.Platform属性以查看它是否为WinCE。

if(Environment.OSVersion.Platform == PlatformID.WinCE)
{
  // this is CF
}

在编译时,它并不那么简单。默认项目向导为PPC / WinMo项目添加了编辑符号“PocketPC”,为WinCE项目添加了“WindowsCE”,为Phone7项目添加了“WINDOWS_PHONE”,因此您可以执行以下操作:

#if WindowsCE || PocketPC || WINDOWS_PHONE
// this is CF
#endif

但没有什么可说的,开发人员无法删除该符号(或将其添加到桌面项目中)。

答案 1 :(得分:0)

或者用简单的话说:

基本思想是用每个框架版本的#if编译器指令装饰你的代码吗?

#if CFNET
// .net CF code
#else
// .net code
#endif

帖子here回答了你的问题。