InstallShield

03411 : InstallShield 2016 Service Pack1 以降でのセットアップの待機方法について

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



LaunchApplication、待たない
2017/05/09 17:01:22
2019/05/28 14:41:39