PDA

View Full Version : Silent installation of SQL Express ok in Cmd prompt but no ok with Installshield



caxama
03-28-2011, 12:53 AM
Hi there

I am using Installshield 2011 Express to do silent installation of SQL 2008 Express (via "custom actions" in "Define setup requirements...."), if I use Installshield to do the job it fails. The error (seen in "Detail.txt") that SQL engine stamps says:

Slp: Running Action: Install_sql_engine_core_inst_Cpu32_Action
Slp: ----------------------------------------------------------------------
Slp: Sco: Attempting to create base registry key HKEY_LOCAL_MACHINE, machine
Slp: Sco: Attempting to open registry subkey
Slp: Sco: Attempting to open registry subkey SOFTWARE\Microsoft\VisualStudio\9.0
Slp: Sco: Attempting to get registry value InstallDir
Slp: Target package: "c:\f9e1a57342bb07385a08\x86\setup\sql_engine_core_inst_msi\sql_engine_core_inst.msi"
Slp: InstallPackage: MsiInstallProduct returned the result code 1618.


However if I copy and paste the same command from Installashield to command prompt, the silent installation of SQL Express 2008 works fine.

I must say that I have SQL Express in my PC, but they are of the same version (2008).

Any help will be greatly appreciated.

Caxama

DebbieL
03-28-2011, 08:05 AM
The recommended way for including something like SQL Server Express in a project is to include an InstallShield prerequisite that installs it, rather than to launch its installation through a custom action. (Windows Installer has a limitation that permits only one Execute sequence to be run at a time. If you try to use a custom action to launch a second one, you will encounter error 1618, ERROR_INSTALL_ALREADY_RUNNING, as you reported. Including prerequisites in your installation enables you to work around this limitation.)

The Redistributables view inclues InstallShield prerequisites for SQL Server 2008 Express.

I hope that helps.

caxama
03-28-2011, 11:35 AM
Thank you for your answer Debbie, but If I use redistributable as a prerrequisite it will install SQL Express only in PCs that don't have SQL, and I want that, but I also want in machines that have already SQL express to install a new instance of the database, and it seems that when I run the Installshield in PCs that already have SQL express, it simply skips the installation since probably assumes that there is already a database in place.

By the way is there any way to change the .prq that allows the installation of the SQL express ? (maybe I can add parameters to the SQL installation to force the installation of a new instance of the database even when there is one already there)

Thanks in advance for your reply

Caxama

DebbieL
03-29-2011, 12:32 PM
That capability is available in the Premier and Professional editions of InstallShield, but not the Express edition.

The SQL Server Express prerequisites that are included in InstallShield are configured to install a default instance of SQL Server Express called SQLEXPRESS if it is not already present. They also check the SQL Server Express version number for that instance; if it matches the version condition in the prerequisite, the installation does not reinstall SQL Server Express.

The InstallShield Prerequisite Editor that is included in the Premier and Professional editions of InstallShield lets you edit the existing prerequisites (or create new ones) that create a new instance of SQL Server Express with a different instance name. The InstallShield Prerequisite Editor is an advanced tool that is not included in the Express edition of InstallShield.

I hope that helps.