インストーラにはそれ自体で単一のEXEパッケージを作成し、それを実行することでインストールが行えるというものも少なくありません。しかしインストーラ自体にそのような機能がなかったとしても、適当なアーカイバを使うことにより、同じようなことができるようになります。そのために必要なアーカイバの機能には次のようなものがあげられるでしょう。
これらのことができるアーカイバで作成された自己解凍書庫であれば、エンドユーザが意識することなく、自然に単一のEXEファイルのみでインストールをすることが可能となるでしょう。
次にこれらの機能を持ったアーカイバを紹介します。
CAB書庫を作成するツールで、Windows 2000、Windows XPに標準でインストールされているようです。Windowsのシステムディレクトリにある"iexpress.exe"という名前のものがそれです。意外と多機能なため、なかなか使えます。実行するには「ファイル名を指定して実行」で「iexpress」と入力し「OK」をクリックします。
設定はウィザード形式で行われます。メッセージは英語で表示されますが、入力やファイル名には日本語が問題なく使えるようです。
日本語版は、Internet Explorer 管理者キットに含まれているようです。(2010/3/26 追記)
次に簡単な使用例を示します。
高い圧縮率で注目されている7z形式に対応したアーカイバ。7z形式の自己解凍書庫の作成が可能。
現在の7-Zip(バージョン2.30Beta23)では、インストーラ用の自己解凍書庫を作成するには7z形式の書庫を作成した後に専用のSFX modulesと設定を書いたテキストファイルをこの書庫に結合させる必要があり、かなりめんどくさいことになります。その方法を簡単に説明しておきます。
SFX modulesはUPXにより圧縮可能ということで、さらにサイズを小さくすることも出来ます。一応7zS.sfxと7zSD.sfx(ver 2.30.23.0)をUPXにより圧縮したものをこちらにおいておきます(ファイル名はそれぞれ7zSC.sfx、7zSDC.sfxとなっています)。
なお、7-zip32.dllを使用すれば、上記のような面倒なことをすることなく、簡単にタイトル、開始メッセージ、実行コマンドなどを設定できます。Explzhなどの統合アーカイバDLL対応のアーカイバを使用して圧縮するときに、自己解凍形式に「7-ZIP32.DLL内蔵版」を選択すれば、SFX設定ダイアログが表示されますので、ここで入力できます。なお、「実行コマンド」が「RunProgram」で、「実行ファイル」が「ExecuteFile」です。(2010/3/26 追記)
「標準の解凍先フォルダ」に"%temp%"、「解凍時に解凍先フォルダを問い合わせない」にチェックを入れ、「解凍後、実行または開くファイル名」にインストーラのファイル名(例えば"setup.exe")、「プログラム終了後、解凍されたファイルを削除する」にチェックを入れて、自己解凍形式書庫を作成します。
参考:ディストリビューションウィザードで作成した「勝手にビューア Ver 0.62 フルセット版」(全ファイル合計2,277,768バイト)を圧縮した時のファイルサイズ = 2,245,772バイト
WinRarはシェアウェアですが、かなり優れたアーカイバです。圧縮率も高いです。
「書庫にコメントを付加」で次のような文を入力して、自己解凍書庫を作成します。
TempMode
Setup=インストーラのファイル名(例えば"setup.exe")
注意:"Setup=setup.exe"とした場合、アーカイブと同じフォルダに"setup.exe"というファイルがあると、その"setup.exe"が実行されてしまいます。
参考:ディストリビューションウィザードで作成した「勝手にビューア Ver 0.62 フルセット版」(全ファイル合計2,277,768バイト)を圧縮した時のファイルサイズ = 2,209,316バイト
あまり知られていないアーカイバだと思いますが、かなりの優れものです。
「自己展開オプション」の「詳細設定を有効」にチェックを入れ、さらに「詳細設定」で「GCAを非表示」にチェックを入れ、「起動させる実行ファイルとコマンドの指定」でインストーラのファイル名(例えば"setup.exe")を指定し、「自動的に作業領域を作成して・・・」にチェックを入れて自己展開形式書庫を作成します。
注意:「起動させる実行ファイルとコマンドの指定」を"setup.exe"とした場合、アーカイブと同じフォルダに"setup.exe"というファイルがあると、その"setup.exe"が実行されてしまいます。
(04/12/31追記:DGCAというのが新しくできたようです。)
参考:ディストリビューションウィザードで作成した「勝手にビューア Ver 0.62 フルセット版」(全ファイル合計2,277,768バイト)を圧縮した時のファイルサイズ = 2,308,790バイト(LZX Lebel21)
開発とサポートを終了したということです。(04/12/31 追記)
これはZIP書庫を自己解凍書庫に変換するためのソフトです(新しくZIPファイルを作ることも可能です)。さすがそれ専用ということがあって、機能が多彩です(ファイルの分割なども可能)。
設定は複雑になりますが、「User Interface」でダイアログが表示しないようにし、「Archive Extraction」の「Default Extraction Path」に"%temp%\"を入力し、「Automatically extract files」を有効にし、「Existing Files」で「Always overwrite」を選択し、「Post-Extraction」では「Show success message after extraction」を無効、「Run command line after extraction」に「{P}\setup.exe」などと入力し、「Remove extracted files when program terminates」を有効にしておけば、大丈夫なのではないかと思います。
このソフトは基本的に日本語が使えません。このソフトにはレジストリからフォルダ名を読み込んでそのフォルダにファイルを展開出来るという、ソフトのバージョンアップの際にはとても使える機能があるのですが、残念ながらレジストリのキーが日本語のときは読み取ることが出来ないようです。しかし日本語のフォルダに展開することは問題なく出来るようです(文字は化けます)。(01/9/6追加)
参考:ディストリビューションウィザードで作成した「勝手にビューア Ver 0.62 フルセット版」(全ファイル合計2,277,768バイト)を圧縮した時のファイルサイズ = 2,229,051バイト
そのほかにWinZip Self-ExtractorやWinAceのようなソフトでもできるのかもしれませんが、使ったことがないので分かりません。