.NET应用程序有时在Windows CE上不起作用

时间:2010-01-10 23:49:30

标签: .net windows-mobile compact-framework windows-ce

我为Windowe ME和CE编写应用程序 C#.NET 2.0。有时我会遇到问题,因为 应用程序不适用于某些导航设备。 在Windowe ME上它不是问题,因为.NET可以 从驾驶室安装,但在大多数Windows CE设备上安装 这是不可能的,因为软复位后所有的变化 消失。我发现在大多数困难的情况下 好的解决方案是将所有dll-s都归属于.NET 安装cab在应用程序所在的文件夹中 运行,一切运作良好。但是有一些 设备,例如Navroad NR460(Windows CE 5.0),其中没有.NET 应用程序工作(这很有趣,因为上一个和下一个 该导航的版本效果很好)。我没找到 在这个设备上cgacutil.exe程序。 是否可以强制设备在没有的情况下运行任何.NET应用程序 再次安装Windows? 我应该怎么做才能检查是否运行.NET a 申请是可能的吗? 运行最简单的应用程序应该满足哪些条件 甚至在.NET 1.0中编写

2 个答案:

答案 0 :(得分:0)

如果设备上没有cgacutil.exe,则表明没有安装.NET CF. Windows CE .NET CF 2.0 cab文件位于我的机器上,位于: C:\ Program Files \ Microsoft.NET \ SDK \ CompactFramework \ v2.0 \ WindowsCE \ wce500 \ armv4i \ NETCFv2.wce5.armv4i.cab

要在设备上阅读.NET CF版本,可以使用此注册表项: [HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft.NETCompactFramework]

如果您的设备上没有安装.NET CF,我不确定它是否存在。 正式地,.NET CF的私有安装将无法正常工作,但在某些情况下令人惊讶的是......我不会依赖它。

答案 1 :(得分:0)

最近,我有一台Windows CE 5设备未运行使用VS 2008编译的标准SDK 500应用程序。根本原因是该设备部分使用古老的Windows CE 5.00而Visual Studio编译的主要/次要版本号为5.01(所谓的子系统版本号)。将链接器命令行选项更改为子系统:5.00后,相同的应用程序能够在此设备上运行。但这完全适用于C / C ++应用程序。

Cab文件也可以限制为仅在平台版本中安装在较低和较高限制之间。例如,要求至少版本5.01和最大5.99。这不会在Windows CE 5.00上运行,也不会在Windows CE 6上运行。

运行时的另一个问题是它们是针对处理器架构编写的,主要是ARM / XScale。但是有些Windows CE 5设备运行x86或其他处理器。 Cab文件也可以限制为仅在某些处理器类型上运行,因此您无法在运行x86或sh4处理器的设备上安装Arm的Cab集。