Creating Multi-Program Installers for the Pocket PC

Keep your development dollars in your product

So, you've created a Windows Mobile application using the .NET Compact Framework (.NET CF) and SQL Server CE (SSCE). Now, all you need to do is build an installer for deployment. In many cases you will need to allow for the installation of the .NET CF and SSCE platforms along with your application. Windows Mobile introduced the .NET Compact Framework, which gives developers the ability to leverage their existing .NET skills to develop applications for the Pocket PC platform. However, just as the .NET runtime is not installed on older versions of Windows, the same is true for older Pocket PCs. In cases where the device is running an OS prior to Windows Mobile, the .NET CF will need to be installed in order for your .NET CF application to work.

If the user's device runs Windows Mobile, you can simplify the install process by skipping the .NET Framework installation, because devices running Windows Mobile come with .NET CF installed in ROM. Older devices running the Pocket PC OS will have to install .NET CF into RAM. SSCE will also have to be installed on some devices. The point here is that, in most cases, you will need to install more than one application to the user's device. To accomplish this you can either purchase an expensive installer application or use the solution discussed in this article.

Low-cost and no-cost solutions

At the time of this writing you could purchase InstallShield's DevStudio for about a thousand dollars. This might work for a development shop with a big budget, but I think most of us would prefer the low-cost or no-cost alternative. I know I would rather invest my money in actual product development. So, here are a couple of low-cost resources that should serve you well.

EzSetup (http://www.spbsoftwarehouse.com/products/ezsetup) from Spb Software House is a free download that allows you to easily create installers for Pocket PC applications. This is one of the easiest command line tools I have ever used. Even if you dislike using command line tools, you will like this one. The only drawback that I found, at least from the examples provided, was that it only allowed for the install of one application at a time. So, if you want to install your application plus .NET CF, and SSCE in one operation, this application falls short.

AirSetup (http://www.spbsoftwarehouse.com/products/airsetup/index.html) lets you create "open air" installs that can be downloaded and installed directly onto a Windows Mobile device. This application, also from Spb Software House, costs $99. It employs compression technology that reduces the size of the installation files. This speeds up the initial downloading of the application for Smart Phones and similar devices that may access a network over a slower connection. AirSetup gives you the ability to display a license agreement, making it a better solution that simply offering CAB files for download. Once again, I could not find a way to make the installer load multiple programs during a single installation.

Multi-file installer

The application I did find that allows you to create multi-file installers is Nullsoft Scriptable Install System (NSIS), developed by Joost Verburg (http://nsis.sourceforge.NET/home/). The Nullsoft tool is normally used to create regular Windows installers, but with some additional scripting, it can be used to build Pocket PC installers as well. Best of all, it is completely free, and because NSIS is extremely configurable, you can create a script to use a Windows XP-style wizard, define which individual installs are required within the overall install process, and describe the purpose of each install, etc. If you are willing to read the help files and look at existing examples, you will not have a problem picking up this system.