我正在创建一个 WIX 安装程序,并且在我的Product.wxs
文件中我包含SQLEXPR_x64_ENU.exe
在产品安装目录中。我通过这样的自定义操作调用安装命令:
<Property Id="SQLEXPRINSTANCENAME" Value="SQLEXPR" />
<CustomAction Id="SqlInstall"
FileKey="SqlInstaller"
ExeCommand="/Q /HIDECONSOLE /ACTION=Install /INSTANCENAME="[SQLEXPRINSTANCENAME]" /IACCEPTSQLSERVERLICENSETERMS /FEATURES=SQLEngine /TCPENABLED=1 /SQLSVCACCOUNT="NT AUTHORITY\Network Service" /SQLSYSADMINACCOUNTS="Builtin\Administrators" /BROWSERSVCSTARTUPTYPE="Automatic" /AGTSVCACCOUNT="NT AUTHORITY\Network Service" /SQLSVCSTARTUPTYPE="Automatic""
Execute="immediate"
Return="check"
Impersonate="yes" />
稍后在执行序列声明中我有:
<InstallExecuteSequence>
<Custom Action="SchedXmlFile" After="InstallFiles">1=1</Custom>
<Custom Action="SqlInstall" After="InstallFinalize">INSTALLSQLYN = "Yes"</Custom>
<RemoveExistingProducts After="InstallInitialize" />
</InstallExecuteSequence>
它运行安装程序正常,但 SQL Server Express 将开始挂起,因此挂起整个 MSI。
如果我使用此命令行并将其复制到命令提示符,则安装完成。
MSI 详细日志记录选项不指示任何内容,并且没有 SQL Server 安装日志的摘要文件。
所以我基本上被卡住了,不知道为什么安装程序卡住了,我不知道该怎么办!
如果有人知道将安装程序包含到 MSI 的更简单方法,请告诉我?或者,如果你能帮我弄清楚它为什么会失败?我没有引导它(这有效,但不允许我的 UI 询问用户是否安装 SQL,知道如何从引导程序中的确认对话框有条件地运行 exepackage?)。我打算将我正在制作的这个 MSI 链接到我的产品安装程序的引导程序中。