Tip: Deploying Windows Mobile Applications from Vista with MSI Installers

Last night I struck an interesting problem deploying a Windows Mobile application from Vista using a MSI Installer and see the issue is fairly well documented.

You get a nondescript installer error code: 2869. There are various work arounds – see https://search.live.com/results.aspx?q=installer+error+code+2869&src=IE-Address.

From Paulo Reichert's
posting

The quick and dirty solution I found to make them install is to create a batch file with the following command:

msiexec /i "path-to-package.msi"

Save the file then right-click it and select "Run as Administrator".

The issue is related to Vista UAC (User Account Control) Elevated privileges not flowing to MSI Managed Code Custom Actions which get called to manage the installation of your app to the device.

How to Build a Windows Vista Windows Mobile Friendly Installer

If you are building an Installer for a Windows Mobile Device and you are following the example at https://msdn2.microsoft.com/en-us/library/aa446504.aspx#deploy_cf2_apps_cab_msi_topic4, then you will strike this problem.

This is the approach I took to building a Windows Vista Friendly Windows Mobile Installer

  1. Follow the instructions as per the document
  2. From the MSI Project Properties Page
    1. Click the Perquisites button
    2. Check the "Create setup program to install prerequisites components" option
    3. Uncheck all the listed prerequisites as they aren't relevant to your Windows Mobile app
  3. Build your MSI Project

Check out the output directory of your MSI project and you'll see your .msi installer plus a setup.exe which does the prerequisite processing.

Now run the setup.exe and it will request elevated privileges from the Vista UAC system, these privileges will flow from the setup.exe to the MSI and the Managed Code Custom Actions and your Windows Mobile application installer will execute successfullyJ

If you are building a Pocket PC application then the free of charge EzSetup Installer from Spb is pretty compelling. It does work for SmartPhone applications as well but the generated installer has "Pocket PC" hardcoded in to the installer wizard which could be confusing for SmartPhone users... It generates a .exe installer which I think will work fine with Vista UAC.

If you are using a Professional Installer tool that generates .exe files then you are probably fine but I've not tried...

Cheers, Dave