このページはアーカイブされた古いページです。
インストーラ講座の目次へ



Windows インストーラ講座 − IExpressを使った配布ファイルの作成手順
2010/10/11 追記:
私見として、Vista以降のOSでは、IExpressの使用は推奨しません。
その理由として、

1.私が調べた限りでは、IExpressはマニフェストファイルの埋め込みに対応しておらず、管理者権限で実行するように指定ができないようです。(もしかすると、新しいバージョンではできるのかもしれませんが。。。)
通常、ファイル名にInstallやSetupなどの文字列がある場合、インストーラとして認識され、管理者権限で実行されるはずですが、ユーザーアカウント制御(UAC)の設定状況やその他の要因によって、認識が失敗する場合があります。
また、なにより、マイクロソフトによれば、自動認識の仕様は一時的なものと告知されており、将来的に廃止される可能が考えられます。
このため、管理者権限で実行することを明示的に指定できないのは、大きな欠点と考えます。
2.Windowsインストーラでインストールされたソフトウェアは、必要なファイルが削除された場合などに、ソフトウェアの自動修復が行なわれる場合があります。
しかし、IExpressでインストールを開始したMSIファイルは、処理完了後に削除されるため、修復インストールが必要な場合に自動修復が行なわれず、MSIファイルを指定するための参照ダイアログが表示されることになります。
3.処理完了時に、エラーメッセージ「プロセス作成エラーです。原因:指定されたファイルが見つかりません。」が表示されることがあります。
これは、一時解凍したMSIファイルが削除できないことに起因しますが、削除できない原因はわかりません。
(頻発する現象ではなさそうですが、こちらで公開しているソフトウェアにおいて、数件の報告が寄せられています。特にWindows2000において発生しているようです。)

代換案として、WinRARによる自動解凍書庫をお勧めします。
WinRARで作成される自己解凍書庫は、解凍と同時に任意のコマンドを引数付きで実行できますし、管理者権限で実行するようにあらかじめ指定しておくこともできます。
また、解凍したファイルは、処理完了後も削除されませんので、ソフトウェアの自動修復がスムーズになります。
さらに、一度指定した書庫生成情報は、プロファイルとして保存&シェルの右クリックメニューにショートカットを生成することができるので、次回、同じソフトウェアのインストーラを生成するのも簡単です。


IExpress(日本語版)は、下記のマイクロソフト社のページから無料でダウンロードすることができます。

Internet Explorer 管理者キット 6 Service Pack 1 日本語版

ただし、単体では配布されておらず、IEAK(管理者キット)の中に含まれています。


IExpressは、CAB形式の書庫ファイルや自己解凍書庫を作成するソフトウェアです。
Windows2000/XPには、標準でIExpress(英語版)が組み込まれていますが、上記URLから日本語版および各国言語版をダウンロードすることもできます。
MSIファイルの配布に、IExpressを使う事は必須ではありませんが、IExpressを使うと、MSIファイルに引数を付けて実行する事がかんたんに実現できるので便利です。
また、配布ファイルも実行形式(*.exe)になりますので、MSIファイル(*.msi)を単体で配布するよりも、馴染みが良いかもしれません。

下記の例では、あるソフトウェアのパッケージファイル"TEST.msi"について、Minor Upgrade を行うケースを想定し、引数「REINSTALL=ALL REINSTALLMODE=vomus」を付けて実行するインストールプログラムを作成してみます。

1.IExpressを起動する
プログラムの指定と実行から、「IExpress」を実行します。(このケースでは、WinXP付属のIExpress英語版を使用しています。)
2.圧縮ファイルの新規作成を選択する
「Create new SelfExtraction Directive file」を選択して、圧縮ファイルの新規作成を開始します。
なお、IExpressにてこれ以降に行う各設定内容は、IExpressのデータファイル(*.sed)として保存する事ができます。
保存したデータファイルを使って、新たに圧縮ファイルを作成する場合は、「Open existing SelfExtraction Directive file.」を選択して、開くファイルを指定することができます。
3.圧縮ファイルの種類を指定する。
IExpressで作成できる圧縮ファイルには、
 Extract files and run an installation command.
  (ファイルの抽出とインストールコマンドの実行を行う実行ファイル)
 Extract files only.
  (ファイルの抽出のみを行う実行ファイル)
 Create compressed file only (ActiveX Installs)
  (CAB形式の圧縮ファイル)
の3種類があります。
ここでは、「Extract files and run an installation command.」を指定します。
4.タイトルを指定する
解凍時に表示されるタイトルを指定します。
5.処理開始前のメッセージを指定する
解凍する前にダイアログを開いてメッセージを表示する場合は、その内容を入力します。
このケースでは、特に表示する必要はないので、「No prompt」を選択します。
6.使用許諾契約の表示を指定する
使用許諾契約を表示させるかどうか選択します。
このケースでは、特に表示する必要はないので、「Do not Display a license.」を選択します。
7.圧縮するファイルを指定します
このケースでは、TEST.MSIファイルを指定します。
8.実行するプログラムを指定します
このケースでは、Minor Upgradeを行うという仮定のもと、ファイル抽出後(自己解凍後)に、TEST.msiを引数付きで実行するように指定します。
引数付きの実行パスは、「msiexec /i TEST.msi REINSTALL=ALL REINSTALLMODE=vomus」となります。
(Minor Upgradeについては、別ページ Small/Minor Upgrade にて説明しています。)
9.上記8.のプログラムのウインドウについて、表示状態を指定する
このケースでは、通常表示状態である「Default(recommended)」を選択します。
10.処理終了時のメッセージを指定します
解凍およびプログラムの実行後にダイアログを開いてメッセージを表示する場合は、その内容を入力します。
このケースでは、特に表示する必要はないので、「No message」を選択します。
11.自己解凍書庫のファイル名を指定する
自己解凍書庫のファイル名とそのオプションを指定します。
ここでは、長いファイル名も扱えるように「Store files using Long File Name inside Package」にチェックします。
(ここにチェックをしないと、ファイル抽出後のプログラムの実行が、正常に動作しないようです。)
12.再起動の有無を指定する
処理完了後に、OSを再起動するかどうかを指定します。
このケースでは、「Only restart if needed.」(=必要であれば再起動する)を指定します。
13.IExpressの設定保存を指定する
ここまで指定した内容を、IExpressのデータファイルとして保存するかを指定します。
14.次へを押す
いよいよ最終段階です。上記画面が表示されたら、「次へ」をクリックします。
15.自己解凍書庫の作成が始まります
DOS画面が開き、自己解凍書庫の作成が始まります。終了するまで待ちましょう。
16.完了
以上で完了です。


ただし、上記方法では、配布ファイルにWindows インストーラ本体も含めたい場合、つまり、MSIファイル以外に"InstMsiA.exe"、"InstMsiW.exe"および"Setup.exe"など、Windows インストーラ本体のインストーラプログラムを同梱している場合には対応していません。


VistaでIExpressを使用してEXEファイルを作成した場合、このEXEファイルは、Windows98や2000などの旧OSで実行することができません。(実行すると、「有効なWin32アプリケーションではありません」と表示されます。)
これを解決するには、Vistaのシステムフォルダにある「wextract.exe」をXP等のものと置き換えれば良いです。
Windowsアップデートにより、いつのまにか解決されていました。以前の「wextract.exe」のバージョン「6.0.6000.16386」では実行できませんでしたが、いつのまにか更新されていたバージョン「8.0.6001.18702」では実行できるようです。

参考URL
自動的に展開される圧縮ファイルを作成するには
IExpress ソフトウェア更新プログラム パッケージのコマンド ライン スイッチ
XCLN:どのように IExpress を使って、 ODK での複数のパッケージを展開するには。
[XCLN]IExpress と ODK を使用してユーザー固有のプロファイルを生成する方法
[XCLN] 入手可能な最新版の IExpress Deployment Kit について
XCLN: ODK IExpress 展開 Readme テキスト



インストーラ講座の目次へページ最上部へ