Search code examples
wixcustom-actionprerequisitessql-server-2008r2-express

Fail to Install SQL Server 2008 R2 as a feature pre-requisite in a WIX project


We have a WinForms project that requires SQL Server 2008 R2 Express. The application is Deployed using MSI installer with a Bootstrapper executable created by WIX. So we need to run SQL Server installer from our installer.

A WIX project has few Features, and only one of them requires SQL Server 2008 R2 Express. The Bootstrapper installer installs .NET 3.5 SP1, .NET 4 and Windows Installer 4.5 and is created using MSBuild GenerateBootstrapper task. We use SQL Server 2008 R2 Express with embedded SP1 and English localization, an installer file SQLEXPR_x86_ENU.exe is taken from http://www.microsoft.com/en-us/download/details.aspx?id=26729.

When user selects a Feature that requires SQL Server we schedule a Custom Action that runs SQLEXPR_x86_ENU.exe with arguments: /QS /ACTION=Install /ENU /ERRORREPORTING=0 /SQMREPORTING=0 /IACCEPTSQLSERVERLICENSETERMS /FEATURES=SQL /INSTANCENAME=ASSET_BANK /HIDECONSOLE /ADDCURRENTUSERASSQLADMIN /SAPWD=[SqlPassword] /SQLSVCACCOUNT="[WIX_ACCOUNT_LOCALSYSTEM]" /SECURITYMODE=SQL /SQLCOLLATION=Latin1_General_CI_AS This Custom Action is scheduled right before InstallInitialize action of the Execute sequence of installer.

When described above Custom Action starts it hangs for a few minutes on ExecuteStandardTimingsWorkflow action of SQL Server installer and then fails. When I run same command from CMD all works well.

Log files are attached. Please help us defeat this issue.

Summary_ComponentUpdate.log:

Overall summary:
  Final result:                  Failed: see details below
  Exit code (Decimal):           -2068052398
  Exit facility code:            1212
  Exit error code:               1618
  Exit message:                  Failed: see details below
  Start time:                    2012-07-31 06:42:11
  End time:                      2012-07-31 06:48:58
  Requested action:              ComponentUpdate
  Log with failure:              C:\Program Files (x86)\Microsoft SQL Server\100\Setup Bootstrap\Log\20120731_064129\WatsonX86_Cpu32_1_ComponentUpdate.log
  Exception help link:           http://go.microsoft.com/fwlink?LinkId=20476&ProdName=Microsoft+SQL+Server&EvtSrc=setup.rll&EvtID=50000&ProdVer=10.50.2500.0

Machine Properties:
  Machine name:                  TEST-PC
  Machine processor count:       1
  OS version:                    Windows 7
  OS service pack:               Service Pack 1
  OS region:                     United States
  OS language:                   English (United States)
  OS architecture:               x64
  Process architecture:          32 Bit
  OS clustered:                  No

Package properties:
  Description:                   SQL Server Database Services 2008 R2
  ProductName:                   SQL Server 2008 R2
  Type:                          RTM
  Version:                       10
  Installation location:         c:\935b38da99e6817b615ea738\x86\setup\
  Installation edition:          EXPRESS

  Slipstream:                    True
  SP Level                       1

User Input Settings:
  ACTION:                        ComponentUpdate
  CONFIGURATIONFILE:             
  ENU:                           True
  FARMACCOUNT:                   <empty>
  FARMADMINPORT:                 0
  FARMPASSWORD:                  *****
  HELP:                          False
  INDICATEPROGRESS:              False
  PASSPHRASE:                    *****
  PID:                           *****
  QUIET:                         False
  QUIETSIMPLE:                   True
  UIMODE:                        AutoAdvance
  X86:                           False

  Configuration file:            C:\Program Files (x86)\Microsoft SQL Server\100\Setup Bootstrap\Log\20120731_064129\ConfigurationFile.ini

Detailed results:
  Feature:                       SQL
  Status:                        Skipped
  MSI status:                    Passed
  Configuration status:          Passed

Rules with failures:

Global rules:

There are no scenario-specific rules.

Rules report file:               C:\Program Files (x86)\Microsoft SQL Server\100\Setup Bootstrap\Log\20120731_064129\SystemConfigurationCheck_Report.htm

WatsonX86_Cpu32_1_ComponentUpdate.log:

=== Verbose logging started: 7/31/2012  6:42:39  Build type: SHIP UNICODE 5.00.7601.00  Calling process: c:\935b38da99e6817b615ea738\x86\setup100.exe ===
MSI (c) (68:54) [06:42:39:853]: Resetting cached policy values
MSI (c) (68:54) [06:42:39:853]: Machine policy value 'Debug' is 0
MSI (c) (68:54) [06:42:39:853]: ******* RunEngine:
           ******* Product: c:\935b38da99e6817b615ea738\x86\redist\watson\dw20shared.msi
           ******* Action: 
           ******* CommandLine: **********
MSI (c) (68:54) [06:42:39:853]: Client-side and UI is none or basic: Running entire install on the server.
MSI (c) (68:54) [06:42:42:864]: Failed to grab execution mutex. System error 258.
MSI (c) (68:54) [06:42:42:864]: Cloaking enabled.
MSI (c) (68:54) [06:42:42:864]: Attempting to enable all disabled privileges before calling Install on Server
MSI (c) (68:54) [06:42:42:864]: Incrementing counter to disable shutdown. Counter after increment: 0
MSI (c) (68:54) [06:42:42:864]: Decrementing counter to disable shutdown. If counter >= 0, shutdown will be denied.  Counter after decrement: -1
MSI (c) (68:54) [06:42:42:864]: MainEngineThread is returning 1618
=== Verbose logging stopped: 7/31/2012  6:42:42 ===

Solution

  • Actually this is a problem of SQL Server 2008 R2 by itself. I successfully installed SQL Server 2005 with the same WIX project. Looks like a problem of Windows Installer 4.5 and SQL Server's chained msi's :(