A CAB file contains your program's .exe and other components, as well as information that can create registry settings and copy support files into specific locations. A CAB file also allows the device to uninstall your application as cleanly as possible.

Creating a CAB file can be achieved using Visual Studio 2005's Start-up Project type. You can read the MSDN documentation here:

*Packaging Device Solutions for Deployment

However, this is only half the problem. There remains the issue of copying the CAB file to the device. Although a CAB file allows an application to be installed "over the air" or directly from a memory card, most users prefer a single executable that is launched on the desktop that copies the CAB file to the device and starts the install process.

Visual Studio 2005 will not create a project like this by default, but as the program is a desktop based .exe, there's no reason why you can't create one.

Here is more information on creating an InstallApplication.

You can also create an MSI file that installs a CAB file from the desktop.
*Step-by-step instructions for creating the MSI (including code sample) can be found in Deploying .NET Compact Framework 2.0 Applications with .cab and .msi Filescf2appscabmsi.asp
*A brief overview (including code sample) can be found in Installing a Windows Mobile device application from a desktop MSI

Certificates and Code Signing

For information on working with certificates and signing your CAB file, you may find the following resources helpful.
*Codesigning for Windows Mobile
*CodesigningMultipleFiles at Once
*CertificatesInformation

CAB Repositories in Internet

You can download and contribute a lot of free applications as CAB-files on the following resources:
*Pocket PC Freeware Community
*Smartphone Freeware Community
Microsoft Communities