从Inno Setup静默安装SQL Server Express 2012

时间:2013-10-18 12:41:57

标签: inno-setup sql-server-2012-express

我正在尝试从使用Inno Setup创建的应用程序安装程序中静默安装SQL Server Express 2012。从命令行运行以下命令时,安装了SQL Server Express 2012,因为我只想显示安装进度但不允许用户输入任何输入。

有效的命令行命令:

C:\Users\Jason\Desktop>SQLEXPR_x86_ENU.exe /ACTION=Install /INSTANCENAME=MYINSTANCE /INSTANCEID=MYINSTANCE /QS /HIDECONSOLE /INDICATEPROGRESS="False" /IAcceptSQLServerLicenseTerms /SQLSVCACCOUNT="NT AUTHORITY\NETWORK SERVICE" /SQLSYSADMINACCOUNTS="builtin\administrators" /SKIPRULES="RebootRequiredCheck"

为了从我的Inno安装脚本执行此操作,我有以下代码:

  Exec(installName,
'/ACTION=Install /INSTANCENAME=MYINSTANCE /INSTANCEID=MYINSTANCE /QS /HIDECONSOLE /INDICATEPROGRESS="False" /IAcceptSQLServerLicenseTerms /SQLSVCACCOUNT="NT AUTHORITY\NETWORK SERVICE" /SQLSYSADMINACCOUNTS="builtin\administrators" /SKIPRULES="RebootRequiredCheck"',
'',
SW_SHOW,
ewWaitUntilTerminated,
ResultCode);

其中installName = SQLEXPR_x86_ENU.exe

从安装程序运行时,SQL Server Express 2012安装程序启动,但在第一个信息对话框之后,它会显示SQL Server安装中心窗口,用户必须在安装程序继续之前选择安装类型。他们还必须同意直接从命令行运行时不需要的许可协议。

有关如何从Inno Setup静默运行安装程序的任何想法吗?

2 个答案:

答案 0 :(得分:1)

从“BUILTIN \ Administrators”更改为“BUILTIN \ Users”即可。

答案 1 :(得分:0)

问题可能在于将命令行参数传递给SQLEXPR_x86_ENU.exe 如果使用命令linie运行解压缩的SQL setup.exe,则一切正常。但是,如果您通过SQLEXPR_x86_ENU.exe传递命令行,它首先提取安装程序,然后使用修改的命令行运行它 - 删除一对引号""(或者它只将第一个字符串作为参数传递)。这就是setup.exe的整个命令行参数应放在其他引号""中的原因 您的命令行应如下所示(以'"开头,并以"'结束):

'"/ACTION=Install /INSTANCENAME=MYINSTANCE /INSTANCEID=MYINSTANCE /QS /HIDECONSOLE /INDICATEPROGRESS="False" /IAcceptSQLServerLicenseTerms /SQLSVCACCOUNT="NT AUTHORITY\NETWORK SERVICE" /SQLSYSADMINACCOUNTS="builtin\administrators" /SKIPRULES="RebootRequiredCheck""'