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.
If you are reading this, I believe you have a solution containing three projects, like the picture below:
Now, you have to go through the following steps:
- Making a new .ini file with the installation information about SQL CE.
- Add SQL Server CE CAB files to your Setup project.
- Add your new .ini file (from step 1) to the Setup project.
- Add a new event handler to the CustomInstaller project.
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:
Version = 1.0
Component = Ordbog
Description = SQL Server CE
CabFiles = sqlce.ppc3.arm.CAB,sqlce.ppc3.mips.CAB,sqlce.ppc3.sh3.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:
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):
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,
string arg = Path.Combine(Path.GetDirectoryName(
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.