是否有编译符号来检测它是否在紧凑的框架平台上运行
答案 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回答了你的问题。