0

根据我在此处阅读的内容,为了在我的手持设备上安装 CF 版本 2,我应该在此处复制一个 cab 文件:

在此处输入图像描述

……但是哪一个?

有问题的设备是 Symbol 3090,目前仅安装了 CF 版本 1.0.3316.00 (1.0 SP2)。设备的操作系统版本为 05.00.1400

设备 CPU 大概是“ARMV4I”,因为类似的设备(摩托罗拉 3190)说它配备了这种设备。

更新

根据我在此处单击“此链接”时看到的内容:

-- 或 -- 如果您的设备上有 Windows Mobile 5 或更高版本,请单击此链接并将文件保存到您的计算机桌面。

...似乎“ NETCFv2.wm.armv4i.cab ”可能是最好的选择。

有什么反驳吗?

更新 2

我复制了我认为是那个文件,并在设备上单击它,但是:

在此处输入图像描述

山姆·克莱门斯 (Sam L. Clemens) 的杰出记忆中发生了什么?!?

更新 3

然后我从上面的链接复制了另一个文件,它略有不同(一方面是 2.12MB 而不是 2.14MB),并尝试运行它,并得到与上面相同的错误消息。

更新 4

尝试从最后一个链接安装,我看到:

在此处输入图像描述

更新 5

实际上,事实证明,我可能真正需要的是在设备冷启动后安装 CF 版本 1……但我不知道 CF 版本 1 是否仍然可用。这是现有 .exe 将运行的唯一版本,但我的 PC 只有版本 2 和 3.5 的 cab 文件......???

更新 6

在最新版本的 .exe 中(构建和编译,但不会在任一设备上运行),它有三个,在其引用区域中计数三个 mscorlib;版本是:

1.0.5000.0
2.0.0.0
3.5.0.0

它们都具有相同的公钥令牌(与屏幕截图中显示的相同)

唯一的其他多参考是 System,它同时具有版本 2 和 3.5

而且,在 System.Xml 下,有三个 coredll.dll,尽管拼写不同:

coredll.dll
CoreDll.dll
CoreDll.DLL

(没有任何人的信息......???)

更新 7

我将 NETCFv2.wce4.ARMV4.cab 复制到 3090。

我在设备上单击了 2 次,但得到了这个:

在此处输入图像描述

所以,我撤退了(选择“否”)。

从而继续有增无减的意外手持开发人员的阵痛。

更新 8

该项目设置为 Framework Version == v2.0,Platform == Windows CE,Target Device == Windows Mobile 6 Classic Emulator(我拥有的为数不多的仿真器选择之一),输出显示它ARMV4i部署:

Deploying '%CSIDL_PROGRAM_FILES%\Microsoft SQL Server Compact Edition\v3.5\Devices\wce500\ARMV4i    
\sqlce.ppc.wce5.armv4i.CAB'

Deploying '%CSIDL_PROGRAM_FILES%\Microsoft SQL Server Compact Edition\v3.5\Devices\wce500\ARMV4i    
\sqlce.repl.ppc.wce5.armv4i.CAB'

Deploying '%CSIDL_PROGRAM_FILES%\Microsoft SQL Server Compact Edition\v3.5\Devices\wce500\ARMV4i    
\sqlce.dev.enu.ppc.wce5.armv4i.CAB'

Deploying 'C:\Program Files (x86)\Motorola EMDK for .NET\v2.8\SDK\Smart Devices\wce500\armv4i\symbol.all.arm.cab'

当我在模拟器中运行 .exe 时,它​​失败并显示“错误 - Platypus.exe 发生意外错误选择退出并重新启动此程序,或选择详细信息以获取更多信息。此应用程序需要更新版本的 MS .NET Compact Framework 高于此设备上安装的版本。”

选择“详细信息”按钮会增加精神痛苦,“ TypeLoadException 此应用程序需要比此设备上安装的版本更新的 MS .NET Compact Framework 版本。

4

2 回答 2

1

首先,您需要弄清楚您正在运行的 CE 版本。您可以通过转到系统属性来找到它。此外,当您在系统属性中时,请注意您正在运行的处理器(arm、mips ...)。如果您运行的是 windows ce 4.2 或更高版本,您将从 wce400 文件夹中选择一个 cab 文件。如果您运行的是 Windows CE 5.0 或更高版本,您将从 wce500 文件夹中选择一个 cab 文件。请注意,根据 Microsoft 文档,您不能在 windows ce 4.1 或更低版本上安装 .net 2.0,但是,我注意到 cab 文件的最低版本设置为 4.0,因此您可能能够破解它。就像我之前在“系统属性”页面上所说的那样,您正在使用的处理器类型。从中选择 wce400 或 wce500 中的适当子文件夹。在每个处理器的大多数文件夹中,应该只有一个 cab 文件。

您还可以通过使用闲置文本创建一个 ini 文件并使用 ceappmgn.exe 为您选择和安装正确的 cab 文件来消除整个过程的猜测工作。

[CEAppManager]
Version = 1.0
Component = NETCF

[NETCF]
Description = .NET Compact Framework v2.0
CabFiles=wce400\armv4\NETCFv2.ppc.armv4.cab,wce400\armv4\NETCFv2.wce4.ARMV4.cab,wce400\mipsii\NETCFv2.wce4.MIPSII.cab,wce400\mipsiv\NETCFv2.wce4.MIPSIV.cab,wce400\sh4\NETCFv2.wce4.sh4.cab,wce400\x86\NETCFv2.wce4.x86.cab,wce500\armv4i\NETCFv2.wm.armv4i.cab,wce500\mipsii\NETCFv2.wce5.mipsii.cab,wce500\mipsiv\NETCFv2.wce5.mipsiv.cab,wce500\sh4\NETCFv2.wce5.sh4.cab,wce500\armv4i\NETCFv2.wce5.armv4i.cab
于 2014-04-29T21:49:20.890 回答
1

假设您使用的是 3090 的 WinCE 4.2 版本(它有 4.2 和 5.0),您应该使用NETCFv2.wce4.ARMV4.cab. “程序不兼容......”消息只是一个警告,而不是一个非常聪明的警告。如果您愿意,甚至可以编辑驾驶室以删除该警告,尽管我的记忆使我无法准确地做到这一点。我之前必须这样做才能允许静默安装(否则 nag 屏幕会妨碍您)。

于 2014-05-01T12:48:56.597 回答