我们有一个需要SQL Server 2008 R2 Express的WinForms项目。 应用程序使用MSI安装程序进行部署,并使用由WIX创建的Bootstrapper可执行文件。所以我们需要从安装程序运行SQL Server安装程序。
WIX项目功能很少,其中只有一个需要SQL Server 2008 R2 Express。 Bootstrapper安装程序安装.NET 3.5 SP1,.NET 4和Windows Installer 4.5,并使用MSBuild GenerateBootstrapper任务创建。 我们使用带有嵌入式SP1和英语本地化的SQL Server 2008 R2 Express,安装程序文件SQLEXPR_x86_ENU.exe取自http://www.microsoft.com/en-us/download/details.aspx?id=26729。
当用户选择需要SQL Server的功能时,我们会安排一个运行带有参数的SQLEXPR_x86_ENU.exe的自定义操作: / QS / ACTION =安装/ 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 此自定义操作是在执行安装程序序列的InstallInitialize操作之前安排的。
如上所述,Custom Action启动它会在SQL Server安装程序的ExecuteStandardTimingsWorkflow操作上挂起几分钟,然后失败。 当我从CMD运行相同的命令时,一切正常。
附加了日志文件。 请帮助我们解决这个问题。
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 ===
答案 0 :(得分:2)
您无法从其他.msi安装.msi。这就是1618错误所说的。
答案 1 :(得分:1)
实际上,这个问题可能是由SQL Server安装程序包引起的。从SQL Server 2008 R2开始,有一个众所周知的SQL Server setup issue。当您在MSI包中启动SQL Server安装程序时,SQL安装程序会尝试停止Msiexec进程,但父MSI程序包不允许这样做。因此SQL Server安装程序将挂起。正如LucID已经提到的,解决方法是使用异步自定义操作(作为单独的进程运行)启动SQL Server安装程序,或创建一个首先启动SQL Server安装程序然后安装MIS包的EXE引导程序安装包
我希望这可以帮助面临同样问题的未来用户。
答案 2 :(得分:0)
实际上这本身就是SQL Server 2008 R2的问题。 我使用相同的WIX项目成功安装了SQL Server 2005。 看起来像Windows Installer 4.5和SQL Server的链式msi的问题:(
答案 3 :(得分:0)
我的情况:使用WiX创建的msi安装程序。 SQL Server Express 2008 R2 SP1安装程序是通过C#自定义操作从我的安装程序中启动的。自定义操作是从命令行启动sql server安装程序。 它在Windows Server 2008,Windows 7中运行良好,即使在Windows XP中也是如此。但是,在Windows 8中它给出了兼容性
我将安装程序更新为SQL Server 2008 R2 SP2。那时它开始陷入ExecuteStahdardTimingsWorkflow而没有任何进展。
查看%ProgramFiles%\ Microsoft SQL Server \ 100 \ Setup Bootstrap \ Log显示下面的部分,它给了我一个线索,它不能顶级msiexec.exe(Windows Installer)服务。
有什么帮助(有点残酷):为搜索Windows Installer服务进程ID的自定义操作添加了一段代码,并使用taskkill / F / PID xxxxx显式杀死它(停止没有'帮忙!)
2013-10-07 13:17:44 Slp: Completed Action: InitializeMsiAction, returned True
2013-10-07 13:17:44 Slp: ----------------------------------------------------------------------
2013-10-07 13:17:44 Slp: Running Action: MsiTimingAction
2013-10-07 13:17:44 Slp: ----------------------------------------------------------------------
2013-10-07 13:17:44 Slp: Running Action: Install_SqlSupport_Cpu64_Action
2013-10-07 13:17:44 Slp: Sco: Attempting to create base registry key HKEY_LOCAL_MACHINE, machine
2013-10-07 13:17:44 Slp: Sco: Attempting to open registry subkey
2013-10-07 13:17:44 Slp: Sco: Attempting to open registry subkey SOFTWARE\Microsoft\VisualStudio\9.0
2013-10-07 13:17:44 Slp: Sco: Waiting for service 'msiserver' to accept the stop request.
2013-10-07 13:17:44 Slp: Sco: Returning service status Running
2013-10-07 13:17:49 Slp: Sco: Returning service status Running
2013-10-07 13:17:54 Slp: Sco: Returning service status Running
....
2013-10-07 13:20:39 Slp: Sco: Returning service status Running
2013-10-07 13:20:44 Slp: Sco: Returning service status Running