cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
bkearns01
Level 2

Distributing C# Windows Forms App with SQLCE is IMPOSSIBLE!

I would like to know the EXACT steps required for creating an installer for my Windows Forms Application. I have been trying EVERYTHING I could find online for the passed 2 months and am near the brink of insanity. I will try to give all of the information and requirements below. Thank you so much my friends.

Dev IDE: Visual Studio 2010
Framework: .Net 4.0
Project: C# Windows Forms Application
Database: SQL Server Compact Edition 3.5 SP 2

Target Operating Systems: Windows XP SP3 (x86 and x64), Windows Vista (x86 and x64), Windows 7 (x86 and x64)
Build Type: (Any CPU)
Digital Signature Key: Yes I have purchased one from VeriSign for use.

What goes wrong: When the installer is executed on a 64-bit system, Only the .Net 4.0 framework is listed as a requirement to be installed on those machines that do not already have it. SQL Server Compact Edition 3.5 SP 2 is never listed as a requirement to be installed on 64-bit systems. However the application is installed but obviously will not run because System.Data.SqlServerCe cannot be found.

Help me Obi Wan Kenobi, you're our only hope...

Thanks!

Bill 🙂
0 Kudos
(2) Replies
Christopher_Pai
Level 16

SQL Server CE 3.5 SP2 is one of those rare redists from Microsoft that has such a small footprint that it isn't required to use a bootstrapper to install their MSI as a Setup Prerequisite. You can just deploy the DLL's privately with your application.

Read:

http://msdn.microsoft.com/en-us/library/aa983326.aspx

Take a look at the "Private File-Based Deployment" section.
0 Kudos
Christopher_Pai
Level 16

I went to use this PRQ today and I now realize the problem you were having.

The PRQ has OS conditions to only run on x86 windows platforms. This is incorrect. According to Microsoft both the x86 and x64 ( which Flexera doesn't seem to provide a PRQ for ) should be installed on x64 systems. If you look at a machine with Visual Studio isntalled you'll see that it installed both.

My guess is that this is due to the fact that a .NET application can be compiled for Any CPU, x86 or x64 and that you need the version of SQL CE that matches the bitness of your process.

From http://www.microsoft.com/downloads/en/details.aspx?FamilyID=e497988a-c93a-404c-b161-3a0b323dce24

On a 64-bit Computer, install both the 32-bit and the 64-bit version of the SQL Server Compact 3.5 SP2 MSI files. Existing SQL Server Compact 3.5 applications may fail if only the 32-bit version of the MSI file is installed on the 64-bit computer. Developers should chain both the 32-bit and the 64-bit MSI files with their applications and install both of them on the 64-bit Computer. Refer to the KB article or to the Install.txt file that is extracted with the MSI files for more information.
0 Kudos