【发布时间】:2013-10-18 12:41:57
【问题描述】:
我正在尝试通过使用 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 Setup 脚本中执行此操作,我有以下代码:
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 静默运行安装程序的任何想法?
【问题讨论】:
-
如果你使用相同的参数,在命令行运行和从 Inno 运行应该没有任何区别。可能会让您在使用 SQL Server 时遇到麻烦的一件事是 from 安装它的位置 - 特别是,
{tmp}文件夹有时是一个足够长的路径名,安装将失败,因为添加到此的 SQL Server 自己的子文件夹将打破最大路径长度限制。如果您在 Inno 中与在其外部执行的位置相同的位置运行安装,请查看它是如何进行的。 -
我尝试从相同的位置运行,但结果相同。安装程序运行正常,但从 Inno Setup 运行时仍需要用户输入。
-
我正在使用以下命令行,它对我来说工作正常:
/QS /IACCEPTSQLSERVERLICENSETERMS /HIDECONSOLE /ENU /InstanceName="MyInstance" /UpdateEnabled=False /Action=Install /Features=SQL /SQLSYSADMINACCOUNTS="BUILTIN\Administrators" /SQLSVCACCOUNT="NT AUTHORITY\NETWORK SERVICE" /SQLSVCSTARTUPTYPE=Automatic /BROWSERSVCSTARTUPTYPE=Automatic -
从命令行我可以静默启动 SQL Server Express 安装程序,但是当从 Inno Setup 执行相同的命令时,它仍然会提示用户。我添加了原始示例中缺少的“/FEATURES=SQLENGINE”,但它仍然需要用户输入。
-
许可证接受的东西必须大写,即 /IACCEPTSQLSERVERLICENSETERMS
标签: sql-server-2012 installation inno-setup sql-server-2012-express