Installation of software on a mobile device is a trivial thing these days. Often the application is supplied with a Setup program that the user runs. I remember the first time that I installed a Pocket PC application by running a setup program from my desktop. The application installed onto the device, and afterwards I even had an entry in my Add-Remove Programs.
It almost did not make sense to me that to install software on my Pocket PC I should run a setup program on my desktop.
There is, however, a case when an installation like the one just described is not desired. That case for me is when I need to install my software on more than a single device. To handle multiple device installations without going through the process of partnering each device is the purpose of this code.
Some instances where this code could be useful are:
- Pre-configuring 20 Pocket PC devices to ship to a customer.
- Allowing the customer to provision multiple devices at a remote site.
- Unbox a device.
- Charge the device.
- Boot the device and perform initial screen tapping until the today screen is displayed.
- Insert an SD Card into the device. (Device is totally configured to run my software).
- Turn of the device - Send device to customer.
This code is an "AutoPlay" for a memory card. The goal was to insert an SD Card into the Pocket PC device, and have the .NET 2.0 Framework installed, if not already installed, then install my program.
The program presented here was designed to meet the following base requirements:
- Activate when the SD Card is inserted into the device
- Require no network from the device
- Require no pre-installed software except the OS. PPC2003 SE in this instance
- Require no ActiveSync anything
In addition to the base requirements, the following requirements are added:
- Detect if the Compact Framework v2.0 is installed
- Install the Compact Framework v2.0 if missing
- Detect if my software is installed
- Install my software if missing
- Display a web page to the user at the end of the installation
- Write a log of actions