InstallShield 2016 Service Pack1 以降、バッチファイルからの実行や InstallScript 関数の
LaunchAppAndWait 関数などが setup.exe インストーラーを待機できなくなりました。
対象製品:InstallShield 2016 Service Pack1/Service Pack2、InstallShield 2018(Service Packなし)
対象プロジェクト:基本の MSI, InstallScript MSI
[概要]
InstallShield 2016 Service Pack1 以降、実行時にクローンプロセスを作成し、そのクローンプロセスから
インストールが実行されます。
InstallShield 2016 Service Pack1 から InstallShield 2018(Service Packなし)で作成されたインストーラー
ではこれらの終了を待機するためにクローンプロセスの終了を待つオプションを使用する必要があります。
※InstallShield 2018 Service Pack1 では、内部的に終了を待機できるよう修正が行われているため、
オプションの使用は不要となります。
[回避方法]
インストーラーの呼び出し方法によって、回避方法が異なります。
■InstallScript の LaunchAppAndWait 関数などを使用して呼び出している場合
InstallShield 2018 SP1以降、InstalShield 2016 SPなし、それ以前のバージョンで作成された
インストーラーを呼び出すコード
----------------------------------------------------------------------------
LaunchAppAndWait (SUPPORTDIR^"IS2016installer.exe", "", LAAW_OPTION_WAIT);
----------------------------------------------------------------------------
InstalShield 2016 SP1 以降、InstallShield 2018 SPなしで作成されたインストーラーを呼び出すコード
------------------------------------------------------------------------------------------
LaunchAppAndWait (SUPPORTDIR^"IS2016SP1installer.exe", "", LAAW_OPTION_WAIT_INCL_CHILD);
------------------------------------------------------------------------------------------
※LAAW_OPTION_WAIT_INCL_CHILD オプションを使用し、子プロセスを待機するように変更
■バッチファイルで start /wait コマンドなどで呼び出している場合
InstallShield 2018 SP1以降、InstalShield 2016 SPなし、それ以前のバージョンで作成された
インストーラーを呼び出すコマンド
------------------------------------
start /wait IS2016installer.exe
------------------------------------
InstalShield 2016 SP1 以降、InstallShield 2018 SPなしで作成されたインストーラーを呼び出すコマンド
----------------------------------------------
start /wait IS2016installer.exe /clone_wait
----------------------------------------------
※/clone_wait オプションを使用し、クローンを待機するように変更
*************************************************************************************************
注)/clone_wait オプションは、InstallShield インストールフォルダ配下にあるisdev.exe のバージョン
が「23.0.0.428」以降で利用できます。
バージョンは、isdev.exe の[プロパティ]>[詳細]タブにて確認できます。
デフォルトの場所:
[64bit OS]
C:\Program Files (x86)\InstallShield\2016\System\isdev.exe
[32bit OS]
C:\Program Files\InstallShield\2016\System\isdev.exe
*************************************************************************************************
[備考]
なお、本記事の内容は以下の記事を参考に作成しています。
LaunchAppAndWait nOptions Parameter When Using InstallShield 2016 SP1
Installer Does Not Wait For Child Process To Finish