私は 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 を連鎖させて、製品インストーラーのブートストラッパーにするつもりです。