My Inno Setup 5 installer internally calls SQLManagementStudio_x86_ENU.exe (2014 SP1), and this consistently fails.
However, when I open Command Prompt in administrator mode and execute SQLManagementStudio_x86_ENU.exe directly, passing in the exact same arguments that are used by the Inno Setup 5 installer, SSMS installation is consistently successful.
I am updating the installer for an older product. One of the components deployed by the installer used to be SQL Server Management Studio 2005. I am updating that installer to instead install SQL Server Management Studio 2014. The installer is produced in Inno Setup 5.
I am executing on the 2014 SP1 version of SQLManagementStudio_x86_ENU.exe.
I am using the following arguments: /ACTION=install /QS /IACCEPTSQLSERVERLICENSETERMS /FEATURES=ADV_SSMS,BC,Conn,SDK,SNAC_SDK,Tools /UpdateEnabled=False
I am installing to a virtual machine running Windows 7 SP1 32-bit. I am on a domain account, with local administrator rights on the current machine. The following versions of the .NET Framework are installed:
- v4.5.51209 (Full)
- v4.5.52109 (Client)
- v3.5.30729.5420
- v3.0.30729.5420
- v2.0.50727.5420
The relevant sample from the end of my SqlSetup.log file is:
02/22/2016 17:43:24.217 Saved .Net security policy file
02/22/2016 17:43:24.218 Attempting to release setup mutex
02/22/2016 17:43:24.219 Setup mutex has been released
02/22/2016 17:43:24.220 SQM key not found
02/22/2016 17:43:24.220 Setup closed with exit code: 0x84C40013
02/22/2016 17:43:24.221 ======================================================================
I tried pasting the Full Output from my SqlSetup.log here. However, I couldn't include it all as this took me over the content limit for how much text can be in a single post.
Relevant section from my Inno Setup 5 log below.
Note that this section includes custom logging information I have added myself so as to trace when registry keys are being analyzed, and what the results are. At present, the CheckSSMS2014SP1x86Installed function is behaving correctly as it is identifying that SSMS 2014 has not been installed.
2016-02-22 17:42:25.820 InstallSSMS2014SP1x86
2016-02-22 17:42:25.820 SSMS2014SP1RegistryCheck
2016-02-22 17:42:25.820 SSMS2014SP1RegistryCheck: Checking if registry key exists: HKLM32\SOFTWARE\Microsoft\Microsoft SQL Server\120\Tools\ClientSetup
2016-02-22 17:42:25.820 SSMS2014SP1RegistryCheck: Key does not exist!
2016-02-22 17:42:25.820 SSMS2014SP1RegistryCheck: Returning false
2016-02-22 17:42:25.820 InstallSSMS2014SP1x86: Returning true
2016-02-22 17:42:25.820 -- Run entry --
2016-02-22 17:42:25.820 Run as: Current user
2016-02-22 17:42:25.820 Type: Exec
2016-02-22 17:42:25.820 Filename: C:\Program Files\Application Directory\Components\MS SQL Server\SQL Server 2014\SP1\Express\x86\SQLManagementStudio_x86_ENU.exe
2016-02-22 17:42:25.820 Parameters: /ACTION=install /QS /IACCEPTSQLSERVERLICENSETERMS /FEATURES=ADV_SSMS,BC,Conn,SDK,SNAC_SDK,Tools /UpdateEnabled=False
2016-02-22 17:43:24.280 Process exit code: 2227044361
2016-02-22 17:43:24.280 CheckSSMS2014SP1x86Installed
2016-02-22 17:43:24.280 SSMS2014SP1RegistryCheck
2016-02-22 17:43:24.280 SSMS2014SP1RegistryCheck: Checking if registry key exists: HKLM32\SOFTWARE\Microsoft\Microsoft SQL Server\120\Tools\ClientSetup
2016-02-22 17:43:24.280 SSMS2014SP1RegistryCheck: Key does not exist!
2016-02-22 17:43:24.280 SSMS2014SP1RegistryCheck: Returning false
2016-02-22 17:43:24.280 Exception message:
2016-02-22 17:43:24.280 Message box (OK):
Internal error: Expression error 'Runtime Error (at 57:279):
Problem installing SQL Server Management Studio 2014 SP1. Unable to continue with installation. Please check your computer specifications meet minimum requirements.'
Best Answer
Finally worked it out.
My issue was actually two issues. Neither one was giving good error feedback. I had to stumble on fixing them both to get the installer to work as intended.
Firstly, I reduced the list of features being installed.
Secondly, I changed the length of the path leading to the SSMS installer at the time it was executed.
The previous execution path was:
The new execution path is:
With both changes in place, the automated installation works as intended.