无法将SQL Server 2008 R2作为WIX项目中的功能先决条件安装
我们有一个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:无法将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
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