Question

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."

Was it helpful?

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).

OTHER TIPS

First you need to figure out what version of CE you are running. You can find this by going to System Properties. Also while you are in System Properties note what processor you are running ( arm, mips ...). If you are running windows ce 4.2 or higher you will pick a cab file out of the wce400 folder. If you are running windows CE 5.0 or higher you will pick a cab file out of the wce500 folder. Note you can't install .net 2.0 on windows ce 4.1 or lower, according to Microsoft documentation, however, I have noticed that the minimum version setting on the cab files is 4.0, so you might be able to hack it. Like I said before on also the System Properties page is the type of processor you are using. From that select the appropriate sub-folder in either wce400 or wce500. In most of the folders for each processor there should be only one cab file. If there is more than one cab file see if the file name contains wm for windows mobile, wce for windows ce, or ppc for pocket PC and pick the one most appropriate for you.

You can also take the guess work out of this whole process by creating an ini file with the fallowing text and using ceappmgn.exe to pick and install the right cab file for you.

[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
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top