This website uses cookies. By clicking Accept, you consent to the use of cookies. Click Here to learn more about how we use cookies.
Turn on suggestions
Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.
- Revenera Community
- :
- InstallShield
- :
- InstallShield Forum
- :
- Check the version number in System folder
Subscribe
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Subscribe
- Mute
- Printer Friendly Page
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Oct 20, 2010
08:11 AM
How can InstallShield check if SQL Server 2005 (3.1) Compact Edition is installed?
I am developing a Windows desktop application which requires the SQL Server 2005 Compact Edition (SQLServerCE31-EN.msi) to be installed. I am using InstallShield 2011 to install this as a pre-requisite during the installation process.
In order to come up with the pre-requisite definition I used Process Monitor to see that these registry locations are checked when SQLServerCE31-EN.msi is run manually (not via the installer):
Most of the time, this check seems to work and InstallShield skips the pre-requisite if it's already detected as installed. However one some machines (Windows 7 Ultimate 64-bit with SQL Server Compact Edition 3.5 already installed) the key doesn't exist, even though Microsoft SQL Server 2005 Compact Edition [ENU] is listed under Programs and Features.
There's a registry key at both of the following locations (on a 64-bit machine) which could be used to check that SQL Server Compact Edition 3.5 is installed, but nothing to show if 3.1 is installed.
I am fairly certain that it is possible to have both versions installed and it's not that 3.5 upgrades 3.1, even though it is obviously a newer version.
How can I check to see if SQL Server 2005 Compact Edition is installed?
This is the .prq file we are currently using:
In order to come up with the pre-requisite definition I used Process Monitor to see that these registry locations are checked when SQLServerCE31-EN.msi is run manually (not via the installer):
32-bit: HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server Compact Edition\v3.1
64-bit: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Microsoft SQL Server Compact Edition\v3.1
Most of the time, this check seems to work and InstallShield skips the pre-requisite if it's already detected as installed. However one some machines (Windows 7 Ultimate 64-bit with SQL Server Compact Edition 3.5 already installed) the key doesn't exist, even though Microsoft SQL Server 2005 Compact Edition [ENU] is listed under Programs and Features.
There's a registry key at both of the following locations (on a 64-bit machine) which could be used to check that SQL Server Compact Edition 3.5 is installed, but nothing to show if 3.1 is installed.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server Compact Edition\v3.5
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SQL Server Compact Edition\v3.5
I am fairly certain that it is possible to have both versions installed and it's not that 3.5 upgrades 3.1, even though it is obviously a newer version.
How can I check to see if SQL Server 2005 Compact Edition is installed?
This is the .prq file we are currently using:
Can the prerequisite file above be improved?
(2) Replies
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Oct 21, 2010
04:35 AM
There are some suggestions on the Microsoft Forums:
http://social.msdn.microsoft.com/Forums/en-US/sqlce/thread/3f161f2e-3908-4911-9bfd-e42188872ebf
http://social.msdn.microsoft.com/Forums/en-US/sqlce/thread/3f161f2e-3908-4911-9bfd-e42188872ebf