Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法将SQL Server 2008 R2作为WIX项目中的功能先决条件安装_Wix_Custom Action_Prerequisites_Sql Server 2008r2 Express - Fatal编程技术网

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

无法将SQL Server 2008 R2作为WIX项目中的功能先决条件安装,wix,custom-action,prerequisites,sql-server-2008r2-express,Wix,Custom Action,Prerequisites,Sql Server 2008r2 Express,我们有一个WinForms项目,它需要SQL Server 2008 R2 Express。 应用程序是使用MSI安装程序部署的,该安装程序具有由WIX创建的引导程序可执行文件。因此,我们需要从安装程序中运行SQL Server安装程序 WIX项目几乎没有功能,其中只有一个需要SQL Server 2008 R2 Express。 Bootstrapper安装程序安装.NET 3.5 SP1、.NET 4和Windows installer 4.5,并使用MSBuild GenerateBots

我们有一个WinForms项目,它需要SQL Server 2008 R2 Express。 应用程序是使用MSI安装程序部署的,该安装程序具有由WIX创建的引导程序可执行文件。因此,我们需要从安装程序中运行SQL Server安装程序

WIX项目几乎没有功能,其中只有一个需要SQL Server 2008 R2 Express。 Bootstrapper安装程序安装.NET 3.5 SP1、.NET 4和Windows installer 4.5,并使用MSBuild GenerateBotstrapper任务创建。 我们使用带有嵌入式SP1和英语本地化的SQL Server 2008 R2 Express,安装程序文件SQLEXPR_x86_ENU.exe取自

当用户选择需要SQL Server的功能时,我们会安排一个自定义操作,该操作使用参数运行SQLEXPR_x86_ENU.exe: /QS/ACTION=Install/ENU/ERRORREPORTING=0/SQMREPORTING=0/IACCEPTSQLSERVERLICENSETERMS/FEATURES=SQL/INSTANCENAME=ASSET\u BANK/HIDECONSOLE/ADDCURRENTUSERASSQLADMIN/SAPWD=[SqlPassword]/sqlsvccount=“[WIX\u ACCOUNT\u LOCALSYSTEM]”/SECURITYMODE=SQL/SQLCOLLATION=拉丁1\u General\u CI\u AS 此自定义操作安排在安装程序执行序列的InstallInitialize操作之前

当上述自定义操作启动时,它会在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
=== 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 ===

无法从另一个.msi安装.msi。这就是1618年的错误所说的

实际上,这是SQL Server 2008 R2本身的问题。 我用同一个WIX项目成功地安装了SQL Server 2005。
看起来Windows Installer 4.5和SQL Server的链接msi有问题:(

我的案例:使用WiX创建的msi安装程序。SQL Server Express 2008 R2 SP1安装程序是通过C#自定义操作从我的安装程序中启动的。自定义操作是从命令行启动SQL Server安装程序。 它在WindowsServer2008、Windows7甚至WindowsXP中运行良好。然而,在Windows8中,它给出了兼容性方面的信息

我将安装程序更新为SQL Server 2008 R2 SP2。从那时起,它开始在ExecuteStahdardiminingSworkFlow上卡住,没有任何进展

查看%ProgramFiles%\Microsoft SQL Server\100\Setup Bootstrap\Log后,我发现下面的一段信息,提示它无法超越msiexec.exe(Windows安装程序)服务

有什么帮助(有点残酷):在自定义操作中添加了一段代码,用于搜索Windows Installer服务进程id,并使用taskkill/F/PID xxxxx显式终止它(停止没有帮助!)


事实上,此问题可能是由SQL Server安装程序包引起的。从SQL Server 2008 R2开始,有一个众所周知的问题。当您在MSI包中启动SQL Server安装程序时,SQL安装程序尝试停止Msiexec进程,但父MSI包不允许此操作。因此SQL Server安装程序将挂起。正如LucID已经提到的一种解决方法是使用异步自定义操作(作为单独的进程运行)启动SQL Server安装程序,或者创建一个EXE引导程序安装包,该安装包首先启动SQL Server安装程序,然后安装MIS包


我希望这将有助于未来面临同样问题的用户。

但我在安装初始化之前运行SQL Server…什么操作开始阻止其他MSI包?所有操作。安装初始化只是延迟执行的开始。虽然不能在MSI安装的服务器部分安装MSI是正确的,但它不是c纠正“所有行动”阻止安装MSI文件。在安装的InstallUISequence中安装MSI是可以的,因为此时系统服务没有执行安装。@LucID的回答是正确的。可以从另一个InstallUISequence运行安装程序。但这是一个坏主意,因为InstallUISequence可能不会运行。这也会导致多重错误le提升同意提示安装程序是否都是每台机器。通过执行一个C#自定义操作,将SQL server 2008 r2 express安装作为一个单独的进程启动,然后在InstallUISequence中的执行操作之前计划此操作,解决了此问题。
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