DOBON.NET プログラミング道: .NET Framework, VB.NET, C#, Visual Basic, Visual Studio, インストーラ, ...

2-11.Inno Setup

制作者:Jordan Russellさん バージョン:2.0.11

ソフトの外観 インストール時の外観

Inno Setupはフリー(商用もフリー)のインストーラで、しかもソースコードも公開されています(Delphi)。インストーラも含めて基本的にはすべて英語ですが、インストーラのメッセージは日本語にすることも可能です。

Inno Setupではインストールの方法をスクリプトファイルを記述することによって指定します。バージョン2になってからはウイザードがついたため、それに従って作成すれば簡単にある程度のものはできてしまいます。

大変すばらしいインストーラのようですが、ヘルプも英語のため、大の英語嫌いの私にどれだけ理解できることやら・・・。

下記の表はInno Setupの解説も含め、ちょっと詳しく余計なものまで書き加えられています。

機能 可・不可 補足
ファイルのコピー セットアップタイプを選択できる([Types]および[Components]にて)
属性を指定可
ショートカットの作成 下記の「ファイルのコピーで指定できる特別なフォルダ」(およびクイックランチ)に作成可能
登録をエンドユーザが選択可能([Tasks]を使用)
Windows NT 3.51の時は自動的にアンインストールアイコンも登録される(それ以外の時は[Setup]でAlwaysCreateUninstallIconを指定)。
MS-DOSプログラムの「プログラム終了時にウィンドウを閉じる」も指定可(closeonexitフラッグ)。
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths"からパスを取得可
コントロールパネルからのアンインストール  
OCXをレジストリに登録 Flags: regserver
regtypelibでタイプライブラリを登録
noregerrorでエラーを表示しない
通常はセットアップの最後に登録するが、[Setup]AlwaysRestartもしくは、登録するファイルがrestartreplaceの時は再起動時に登録を行う。
レジストリ情報の削除  
インストールしたフォルダごと削除 .HLPがある時は.GIDと.FTSを自動的に削除
バージョンを比較してコピー 新しいものがすでにある時はユーザに問い合わせることも可(CopyMode: normal)、問い合わせないことも可(alwaysskipifsameorolder)
ファイルがない時だけコピー(onlyifdoesntexist)、絶対に上書き(alwaysoverwrite)も可
コピーに失敗したファイルをパソコン起動時に置き換える Flags: restartreplaceを指定
[Setup]に"AdminPrivilegesRequired=1"を記述することを推奨
関連付け レジストリに直接書き込むことにより可能
詳細はFAQに記述あり
インストール前にREADMEを表示

ライセンス情報も表示可能
リッチテキストも指定可能

SharedDLLsに登録 Flags: sharedfileを指定
MFC DLLの場合はこれを使わず、onlyifdoesntexistとuninsneveruninstallを使う。(新しいDLLの時は、alwaysskipifsameorolder uninsneveruninstall restartreplaceを使う)
レジストリに書き込む  
上記以外の機能 パッケージを単一のEXEファイルにまとめられる
modernスタイル(Windows Installerのようなスタイル)とclassicスタイル(昔のInstallShieldのようなスタイル)のGUIが選べる
INIファイルの編集可能
サイレントインストール、アンインストール可能
圧縮レベルを設定可能(CompressLevel)
パッケージの分割が可能(DiskSpanning)
フォントインストールも可
インストール後Readmeを表示可能(isreadme)
インストールの最後、アンインストールの最初に複数のファイルを実行可能、ユーザが選択可能([Run]のpostinstallフラッグを使用)
OSにより変更可能
パスワードの設定可能
画像や背景色を変更可能
などなど

インストーラのサイズ等

インストーラのサイズ 不明(500KB以上?)
アンインストーラのサイズ 72,233バイト(unins000.exe)
ファイルのコピーで指定できる特別なフォルダ インストール先のフォルダ、Windowsフォルダ、Windows Systemフォルダ、インストーラのあるフォルダ、システムドライブ、Program Filesフォルダ、Common Filesフォルダ、一時フォルダ、フォントフォルダ、DAOフォルダ
スタートメニューのグループ、送るフォルダ、Application Dataフォルダ*、デスクトップ*、マイドキュメント*、お気に入り*、スタートメニューのプログラム*、スタートメニュー*、セットアップ*、テンプレートフォルダ*(*はログインユーザーとすべてのユーザおのおの可能)
そのほかINIファイル、レジストリからの取得も可能

独断による長所と短所

長所

1.高機能

Inno Setup自体かなりの高機能ですが、Inno SetupをMartijn Laanさんが改造して作ったInno Setup Extensionsはさらに機能が拡張されており、スクリプトを使ったインストールなども出来るようです。

2.信頼性

Inno Setupは世界中の多くのソフトウェアで使われている実績があり、ソースコードも公開されているため、信頼できるインストーラであるといってよいでしょう。

3.VBユーザにも親切

VBソフトで必要なファイルをインストールするために必要なスクリプトがこのページにあります(英語版)

日本語VB6ソフトを動かすのに必要だと思われるファイルをインストールするためのスクリプトを勝手に書いてみました。必要な箇所をコピー&ペースとしてご利用ください。なおこれらのファイルはすべてWindows Systemディレクトリ(C\WINDOWS\SYSTEM)にあるものとしますので、適当に変更してください。(下記のスクリプトに間違いを発見された方はご連絡ください。)restartreplaceフラッグを使用しているため、[Setup]に"AdminPrivilegesRequired=1"を記述するべきでしょう。

Inno Setupのヘルプを読むと、SYSTEMディレクトリにあるDLLをSourceに指定すべきではなく、別のディレクトリに置いておくべきだというような注意書きがありますので、そのようにすべきでしょう。(01/9/6追加)

(01/8/23修正:Flagsにexternalを追加、COMCAT.DLLに関する説明追加)
(01/9/6修正:COMCAT.DLLをWin95/NTとそれ以上で分けてインストールするようにする)
(04/12/30修正:再びFlagsのexternalを削除)

ちょっと気になるところ

1.すべてが英語

当然ですが、すべて英語です(インストールのメッセージは日本語表示可能)。英語が苦手な私のような人にはかなりきついでしょう。インストールの設定をスクリプトを書くことにより指定するため、ヘルプを読めなければ話になりません(ウイザードや、GUIによるスクリプトエディタもありますが、これらも英語です)。さらに、インストール時のメッセージを日本語にするためにこれらを日本語に翻訳しなければなりませんメッセージの日本語訳が公式サイトで公開されています)。Inno Setupは日本でも使っている人が多いようですが、解説サイトがないようで(2010/3/26 現在では結構あるようです)、やはり英語のヘルプを読まなければならないでしょう。インストーラとして日本語が使えるかということに関しては、MBCSに完全対応しているということなので、問題ないと思われます。


トップページに戻る

メニューに戻る

次へ