NeelTiwari

Hi,

I'm hitting this really funny problem. I work on a product which, when installed, generates a CAB file for ARM-processor based windows ce devices, and which then pushes the CAB file through Activesync onto a synced device for installation (using CE AppManager). An alternative method we use is, get the product to create the CAB file, then we directly copy the CAB file into the device through Activesync, and double-tap it there.

Both these methods were working fine on:

Pocket PC OS 2003 device,

Windows Mobile 5.0 device.

But, when we tried the same methods on a Windows CE 5.0 device (specifically a Symbol WT4090), only the installation through Activesync (through CEAppManager) worked, whereas directly triggering the CAB file on the device fails with the error "Installation of [product name] fails. Run the setup program again".

I tried double-tapping it again to be sure, no dice. I even opened a command prompt on the device (it has cmd) and typed in

wceload.exe \Application\installer.ARM.CAB

It triggers the install, but same error. I even tried options with wceload.exe like /noaskdest, /nodelete, etc. but the same error.

And yet, once I install the application through Activesync successfully, triggering the CAB file manually works!!! (it basically prompts to reinstall the existing application).

It looks to me like a security issue, though I'll be damned if I can figure out why it would be "unsecure" to trigger a CAB file inside the device, while its perfectly safe to have it triggered through Activesync :-).

I could really use some inputs, the offshoot of this problem is that our customers aren't able to install the application, let alone use it! Can anyone help me

In case this info helps, we create a different CAB file of the product installer for x86-based processors. We tried both methods of installation on an HP Thin Client running Windows CE 5.0(to test the x86-processor specific CAB), we see no problems there.



Re: Smart Devices Native C++ Development Windows CE 5.0: CAB files only install thru Activesync?

Ilya Tumanov

This might happen if you¡¯re Authenticode signing your CAB. Window CE does not support signed CABs and would not install them. However, if CAB goes through AS Authenticode signature would be removed and CAB would install. Make sure you do not sign the CAB for CE.






Re: Smart Devices Native C++ Development Windows CE 5.0: CAB files only install thru Activesync?

NeelTiwari

Actually, we definitely don't sign our CAB files. In fact, when we run these CAB files on a Windows Mobile 5.0 Device we have (Dell Axim x51) we usually get the prompt stating that the CAB's publisher is unknown, and we have to click "Yes" to proceed with the installation. Also, the x86-based version of the CAB file runs fine on the Windows CE 5.0 thin client. The only changes between the two are some platform-specific file copy during the install (controlled through platform-specific targets).





Re: Smart Devices Native C++ Development Windows CE 5.0: CAB files only install thru Activesync?

NeelTiwari

Just got an email from the administrator regarding whether my query was answered or not... couldnt' think of anything else to renew it except post this comment...

Still nothing :-(.

Anyone has any ideas





Re: Smart Devices Native C++ Development Windows CE 5.0: CAB files only install thru Activesync?

Ilya Tumanov

Did you make sure your CAB is not signed The prompt you're getting on Wm 5.0 does not mean CAB is not signed, it would also pop up if CAB is signed but with untrusted certificate. Also make sure you're not compressing the CAB (though it won't install through AS in that case).

Also if you have several CABs see which one AS actually installs. Perhaps it's not the one you're trying without AS. AS can push x86 CAB if you don't have proper CPU ID in the CAB and it would install fine ARM device as long as you don't have a setup DLL.






Re: Smart Devices Native C++ Development Windows CE 5.0: CAB files only install thru Activesync?

NeelTiwari

Actually, I was able to get the answer to the problem. The CAB was definitely not signed, but what happened is that the install path for the binaries/files contained in the CAB was in root folder. We figured out that Windows CE sort of frowns on this, and recommends that applications be installed in \Program Files (ie. %CE1%) folder. Once we made the required changes to the .inf file and rebuilt the CAB, this worked fine.