Innosetupを使ってインストーラを作る

Windowsでプログラミングを行なってアプリが出来上がると、次はインストーラが欲しくなります。 インストーラ作成ソフトとしてはInstallShieldが有名ですが、大変高価です。 仕事でソフトを書いている場合はInstallShieldを買えば良いですが、趣味でプログラミングをしていたりするとさすがに買えません。 フリーのインストーラ作成ソフトは色々ありますが、ここでは「Innosetup」というソフトの使い方を説明したいと思います。

Innosetupの特徴

Innosetupは、Jordan Russellが作成/配布している無料ソフトです。 商用/非商用に関係なく利用できます。 Windows 95、98、Me、NT 4.0、2000、2003、XPなど、全てのWindows環境でインストーラを作成できます。 Innosetup自身はBorland Delphiを使って書かれていて、ソースコードも入手可能です。 また、ソースコードの改変や再配布も許可されています。

Innosetupは、非常に細かい設定をスクリプトとしてゴリゴリ書けます。 そのため、非常に柔軟性が高いインストーラ作成ソフトです。

Innosetupを使うには、Innosetup利用規定を守る必要があります。 利用規定を大まかに要約すると、以下のようになると思います(注意:2004年11月時点)。

  • Innosetupによって発生する不具合に関する責任を作者は負わない。
  • 商用/非商用ともに利用/再配布可能。
  • 再配布される全てのソースコードはCopyright noticeを保持しなくてはならない。
  • バイナリによる配布では、Copyright noticeやソフトのURLなどを保持しなくてはならない。(例えば、Aboutダイアログ)
  • ソフトウェアの起源を偽ってはいけない。(勝手に自分が作ったと言ってはいけない)
  • 変更を加えたものは変更を加えた旨を記述しなくてはならない。(原版であると偽ってはいけない)

日本語環境でInnosetupを使うための準備

とりあえず、まずはInnosetupをダウンロードしてインストールします。 この説明を書いている時の最新版は4.2.7です。

Innosetupは最初のままでは日本語を正しく扱えません。 そのため、日本語環境用にファイルをインストールする必要があります。 Innosetupでは、「.isl」ファイルで言語環境を設定します。 ファイルのインストールは、「.isl」ファイルをInnosetupがインストールされたフォルダの「Languages」ディレクトリに置くことで行ないます。 日本語用の「Japanese.isl」はInnosetupのサイトからダウンロードが可能です。

(第三者が作成したInnosetup公式サイトで日本語環境設定ファイルを配布していますが、4.2.7では動作しなかったので、旧バージョンのものを改造してみました[Japanese.isl]。 もしよろしければご利用ください。)

インストール先ディレクトリを変更せずにデフォルトのままInnosetupをインストールした場合、「C:\Program Files\Inno Setup 4\Languages\」に「Japanese.isl」を置くと日本語を使えるようになります。 もし、「英語版インストーラなんて使わない!日本語だけでいい!」という場合には、Innosetupインストールフォルダ直下に置いてある「Default.isl」を「Japanese.isl」で置き換えると楽かも知れません。

とりあえず、Innosetupを使ってみる

とりあえず、使ってみるのが理解する最短の道だと思うので、インストールしたら使ってみましょう。 Innosetupを起動すると、いきなりエディタが登場します。 そのエディタにインストール用の設定スクリプトをゴリゴリ書いていく事でインストーラを作成します。 最初に、実行ファイルを単純にインストールするスクリプトの例です。


[Setup]
AppName=とりあえずてすと
AppVerName=とりあえずテスト version 0.0
DefaultDirName={pf}\テスト
DefaultGroupName=とりあえず
UninstallDisplayIcon={app}\a.exe
Compression=lzma
SolidCompression=yes

[Files]
Source: "a.exe"; DestDir: "{app}"
Source: "Readme.txt"; DestDir: "{app}"; Flags: isreadme

[Icons]
Name: "{group}\とりあえずテスト"; Filename: "{app}\a.exe"

日本語ファイルを「Languages/Japanese.isl」に置いた場合には、以下のように[Languages]項目を書くと日本語に対応できます。


[Setup]
AppName=とりあえずてすと
AppVerName=とりあえずテスト version 0.0
DefaultDirName={pf}\テスト
DefaultGroupName=とりあえず
UninstallDisplayIcon={app}\a.exe
Compression=lzma
SolidCompression=yes

[Languages]
Name: jp; MessagesFile: "compiler:Languages\Japanese.isl"

[Files]
Source: "a.exe"; DestDir: "{app}"
Source: "Readme.txt"; DestDir: "{app}"; Flags: isreadme

[Icons]
Name: "{group}\とりあえずテスト"; Filename: "{app}\a.exe"

Innosetupで上記例を実行すると、a.exeをインストールするインストーラが出来上がります。 出来上がったインストーラでインストールされたものを削除するには、コントロールパネル⇒アプリケーションの追加と削除を利用します。

スクリプト記述方法例は、Innosetupがインストールされているフォルダの「Examples」フォルダの中を見たり、innosetupのヘルプを参照することでも可能です。