armcompact-frameworkwindows-cemotorolahandhelddevice

Which cab should I deploy to my handheld device to install CF version 2?


Based on what I read here, in order to install CF version 2 on my handheld device, I should copy over one of the cab files here:

enter image description here

...but which one?

The device in question is a Symbol 3090, which currently has only CF version 1.0.3316.00 (1.0 SP2) installed. The OS version of the device is 05.00.1400

The device CPU is presumably 'ARMV4I' as a similar device (Motorola 3190) says that it is equipped with such.

UPDATE

Based on what I see here when I click "this link" here:

-- OR -- If you have Windows Mobile 5 or newer on your device, click this link and save the file to the desktop of your computer.

...it seems "NETCFv2.wm.armv4i.cab" is probably the best choice.

Any refutations?

UPDATE 2

I copied the file I reckoned to be the one, and clicked it on the device, but:

enter image description here

What in Sam L. Clemens' illustrious memory is going on here?!?

UPDATE 3

I then copied over the other file from the link above, which was slightly different (2.12MB as opposed to 2.14MB, for one thing), and tried to run it, and got the same err msg as above.

UPDATE 4

Trying to install from the last link, I see:

enter image description here

UPDATE 5

Actually, it turns out that what I might really need is to install CF version 1 after a cold boot of the device...but I don't know if version 1 of CF is still available. That's the only version the existing .exe will run on, but my PC only has cab files for versions 2 and 3.5...???

UPDATE 6

In the most recent version of the .exe (builds and compiles, but won't run on either device), it has three, count 'em three mscorlibs in its References area; the versions are:

1.0.5000.0
2.0.0.0
3.5.0.0

They all have the same public key token (the same as shown in the screen shot)

The only other multi-reference is System, which has both version 2 and 3.5

AND, below System.Xml, there are three coredll.dlls, albeit spelled differently:

coredll.dll
CoreDll.dll
CoreDll.DLL

(no info for any of them...???)

UPDATE 7

I copied NETCFv2.wce4.ARMV4.cab to the 3090.

I 2-clicked it on the device, but got this:

enter image description here

And so, I retreated (selected "No").

Thus continue unabated the travails of an accidental handheld developer.

UPDATE 8

The project is set to Framework Version == v2.0, Platform == Windows CE, Target Device == Windows Mobile 6 Classic Emulator (one of the few emulator choices I have), and the output shows that it is ARMV4i that is being deployed:

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'

And when I run the .exe in the emulator, it fails with, "Error - An unexpected error has occurred in Platypus.exe Select Quit and restart this program, or select Details for more information. This application requires a newer version of the MS .NET Compact Framework than the version installed on this device."

Selecting the "Details" button augments the mental anguish with, "TypeLoadException This application requires a newer version of the MS .NET Compact Framework than the version installed on this device."


Solution

  • Assuming your are using the WinCE 4.2 version of the 3090 (it comes in 4.2 and 5.0), you should proceed with the install using NETCFv2.wce4.ARMV4.cab. "The program is not compatible..." message is a warning only, and not a very smart one. There is even a way to edit the cab to remove that warning if you wanted to, though my memory fails me on the exact way to do it. I've had to do it to allow a silent install before (otherwise the nag screen gets in your way).