无法安装SQL Server 2008 R2作为WIX项目中的功能先决条件

时间:2012-07-31 13:56:09

标签: wix custom-action prerequisites sql-server-2008r2-express

我们有一个需要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 ===

4 个答案:

答案 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