How to get the mobile client pre-requisites installed on your device

Our client product is built using .NET Compact Framework v2, which therefore needs to be on the device in order for the applications to run. We're also leveraging SQL Server 2005 Compact Edition (aka SQL Server Compact v3.1 aka SQL CE 3.1) for data storage. The procedure for getting these bits on the device differs depending on the version of Windows Mobile - and it is not completely obvious. We've had several requests from customers and partners in regards to this, so I've made this matrix to explain the process.

OS version Instructions
Windows Mobile 5.0 (Pocket PC and Pocket PC Phone)

Install .NET Compact Framework 2.0

The device .CAB can be found within the .MSI located here. We have both SP1 and SP2 in our test matrix, but we always recommend taking the latest service pack. The NETCFv2.wm.armv4i.cab can be found in %program files%\Microsoft.NET\sdk\CompactFramework\v2.0\WindowsCE\wce500\armv4i after running the .MSI. Copy the file to the device and install.

If you want to get in depth error messages on the device from .NET Framework, either in English or a localized, you would also need to install a version of System_SR_[language]_wm.CAB (System_SR_ENU_wm.CAB for English). These files live in the %program files% \Microsoft.NET\SDK\CompactFramework\v2.0\WindowsCE\Diagnostics. Pick the one you need, and copy to device for installation. Installing this might help you in diagnosing connectivity issues.

Install SQL Server 2005 Compact Edition

The needed device .CAB's can be found within the .MSI located here. After installing jump to the %program files%\Microsoft SQL Server Compact Edition\v3.1\SDK\bin\wce500\armv4i folder on the machine where you’ve executed the .MSI and copy sqlce30.ppc.wce5.armv4i.cab and sqlce30.repl.ppc.wce5.armv4i.cab to the device and install.

Windows Mobile 6.0 (Classic and Professional)

Windows Mobile 6.0 comes with our pre-requisites loaded, so please do not try to install any of the .CAB files above on the device. The only reason for doing so is if a needed service pack is issued.

Please note that we do not support Windows Mobile 2003 SE and older, nor do we support any version of Windows Mobile on Smartphone.

And then you might ask, what if I plan to have SQL Server 2008 running in the back-office? Or what is the story behind the different version numbers?. Our good friend Laxmi from the SQL Server Compact Edition team has a very good post outlining cross-connectivity.