Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

Packaging and Deploying Pocket PC Applications and SQL Server CE 2.0

0.00/5 (No votes)
12 Nov 2005 1  
This article is about making a package containing a Pocket PC application and a SQL Server CE. The package will be of type MSI. When you click it, it will first install SQL Server CE 2.0 and then it will install the Pocket PC application.

Introduction

This article is about making a package containing a Pocket PC application and SQL Server CE. The package will be of type MSI. When you click it, it will first install SQL Server CE 2.0 and then it will install the Pocket PC application.

When I first started to make this package, I got a lot of help from this article.

Therefore, before you read any further, go through all the steps in the article above, and then return to this article.

Overview

If you are reading this, I believe you have a solution containing three projects, like the picture below:

Sample screenshot

Now, you have to go through the following steps:

  1. Making a new .ini file with the installation information about SQL CE.
  2. Add SQL Server CE CAB files to your Setup project.
  3. Add your new .ini file (from step 1) to the Setup project.
  4. Add a new event handler to the CustomInstaller project.

Road Map

Step 1: Making a new .ini file with installation information about SQL CE

Make a copy of your existing .ini file in your main project. Rename the new file to whatever you want. I called it Sqlce.ini.

Replace all the code in Sqlce.ini with this code:

[CEAppManager]
Version = 1.0
Component = Ordbog

[Ordbog]
Description = SQL Server CE
CabFiles = sqlce.ppc3.arm.CAB,sqlce.ppc3.mips.CAB,sqlce.ppc3.sh3.CAB,
           sqlce.ppc3.x86.CAB,sqlce.wce4.armv4.CAB,sqlce.wce4.x86.CAB

Attention!!! Replace “Ordbog” with the name of your main project.

Step 2: Add SQL Server CE CAB files to your Setup project

Right click your Setup project and choose Add >> File. Select the following files one by one:

  • sqlce.ppc3.arm.CAB
  • sqlce.wce4.armv4.CAB
  • sqlce.ppc3.mips.CAB
  • sqlce.ppc3.sh3.CAB
  • sqlce.wce4.x86.CAB
  • sqlce.ppc3.x86.CAB

You can find these files here: Program Files\Microsoft Visual Studio .NET 2003\CompactFrameworkSDK\v1.0.5000\Windows CE\wce300\[Processor type].

Step 3: Add your new .ini file (from step 1) to the Setup project

Right click your Setup project and choose Add >> File. Select the .ini file from step 1. Your solution should look something like this (picture below):

Sample screenshot

Step 4: Add a new event handler to the CustomInstaller project

In CustomInstaller.cs, add this new event handler next to the two other event handlers:

this.BeforeInstall += new InstallEventHandler(CustomInstaller_BeforeInstall);

Next, add this snippet:

private void CustomInstaller_BeforeInstall(object sender, 
                                      InstallEventArgs e)
{
  string arg = Path.Combine(Path.GetDirectoryName(
               Assembly.GetExecutingAssembly().Location),"Sqlce.ini");
  RunAppManager(arg);
}

Rebuild the CustomInstaller project.

Before the changes in the CustomInstaller take effect, you sometimes will have to remove the old reference in the Setup project to the CustomInstaller assembly and replace it again. You have to do the same in the Custom Actions in your Setup project.

Next, rebuild your Setup project and install your package to your Pocket PC.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here