メイン >> 3. インストーラを作成する

簡単なインストーラを作成する

Inno Setup を使って簡単なインストーラを作成します。

Inno Setup を起動します。
以下のダイアログが表示されますが、「Cancel」を押して閉じます。

build1.gif

以下のスクリプトを、貼り付けて、ビルドを実行します。

[Setup]

// アプリ名
AppName=MyApp
// アプリ名+バージョン
AppVerName=MyApp 1.0
// アーカイブ名
OutputBaseFilename=MyApp
// 初期インストールディレクトリ
DefaultDirName=c:\installtest

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


build2.gif

ビルドが正常に終了すると、Inno Setup のインストールディレクトリ下に、
Output という名前のディレクトリが作成され、そのディレクトリ内に
MyApp.exe というインストールアーカイブが作成されています。

Inno Setup 5(インストールディレクトリ)
  Examples  
  Languages  
  Output ← 新しく作成される。
  ディレクトリ内に、インストールアーカイブファイルが作成される。
  Inno Setup のプログラムファイル等
             :

build7.gif


作成された MyApp.exe を実行します。

build3.gif

build4.gif

build5.gif

build6.gif

インストールが終了すると、インストールディレクトリが作成されます。
build8.gif

インストール情報が、レジストリに書き込まれ
「アプリケーションの追加と削除」の一覧に表示されます。

build9.gif

アンインストールを実行すると、インストールディレクトリ「c:\installtest」が削除されます。

インストール情報のレジストリ書き込みについて
  Inno Setup では、インストール情報を以下のキーでレジストリに書き込みます。

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\[AppName]_is1]

[AppName] は、[Setup] セクションで AppName に指定した値になります。
このキーに書き込まれた値を元に、「プログラムの追加と削除」でのインストール情報表示や、アンインストールプログラムの実行を行います。

以上が、インストーラ作成の基本的な流れとなります。
今回は、インストールスクリプトに [Setup] と [Languages] セクションのみ記述しましたが
Inno Setup には、インストールするファイルを指定するセクションなどもあります。
次に、各セクションについて説明します。

>>Inno Setup での各セクションについて

投稿者 yamadas : 2006年08月16日 23:00 固定リンク

セクションについて

Inno Setup で記述するセクションには以下があります。

セクション名 記述する内容
[Setup] インストーラ全体に対する設定を定義する。
[Types] インストール方法(簡単/カスタム など)を定義する。
[Components] インストール方法を設定するときに、それぞれの方法でインストールされるファイル群( コンポーネント ) について定義する。
[Tasks] インストール処理を、ユーザー側で細かく設定する場合に、それぞれの処理( タスク ) について定義する。
[Dirs] インストール時にインストールディレクトリ下に作成するディレクトリについて定義する。
[Files] セクションで、ディレクトリも指定できるため、空のディレクトリを作成するために記述される。
[Files] インストールするファイルを定義する。
[Icons] インストール時に作成するプログラム等へのショートカットファイルについて定義する。
[INI] .INI ファイルを使用する場合に、インストール時に .INI ファイルに対して書き込む内容を定義する。
[InstallDelete] インストール時に、削除するファイルがあれば定義する。
[Languages] インストーラが使用する言語を定義する。
[Messages] インストーラで表示する文字列を定義する。通常は、[Languages]で定義した .isl ファイルで全て指定してあるため定義する必要はない。
[CustomMessages] インストーラでカスタムメッセージを表示する場合には、その内容を定義する。
[LangOptions] インストーラで表示する文字について、フォント、文字サイズなどを定義する。通常は、[Languages]で定義した .isl ファイルで全て指定してあるため定義する必要はない。
[Registry] インストーラでレジストリキーを編集する場合、その内容を定義する。
[Run] インストーラの実行終了後に起動するプログラムがあれば定義する。
[UninstallDelete] アンインストール時に、インストール時に作成したファイル、ディレクトリ以外を削除する場合に、その内容を定義する。
インストールしたプログラムが作った INI ファイルの削除などを記述する。
[UninstallRun] アンインストールを実行するときに起動するプログラムがあれば定義する。
[Code] インストーラに独自処理をさせる場合に、その内容をパスカルスクリプトで定義する。

各セクションの詳しい用途、記述内容については、
ヘルプ:「使い方」-「スクリプトのセクション」を参照してください。

■参考: MASATOの開発日記-Inno Setupの使用例

投稿者 yamadas : 2006年08月16日 22:00 固定リンク

ウィザードページ(ダイアログ)について

セットアッププログラムで表示されるウィザードページには、デフォルトで表示されるものと
設定を記述することで表示/非表示 を切り替えられるものがあります。

カスタムダイアログを作成している場合には、[Code] セクションのイベント関数に記述して表示/非表示を管理します。

詳しくは、ヘルプ:「他の情報」-「ウィザードページ」 を参照してください
( ヘルプ内に表示されている順にウィザードページは表示されます。 )

デフォルトで表示されるウィザードページ
ようこそ 必ず表示される。
wizardpage1.gif

インストール先フォルダの選択 [Setup] セクションで DisableDirPage=no に設定すると表示されない。
wizardpage6.gif

インストールの準備をしています 必ず表示される。
インストールの準備ができました [Setup] セクションで DisableReadyPage=no に設定すると表示されない。
wizardpage12.gif

インストールしています インストール実行中に必ず表示される。
セットアップが終了しました [Setup] セクションで DisableFinishedPage=no に設定すると表示されない。

[Run] セクションで起動するプログラムについて記述されている場合は、実行を確認するチェックボックスが表示される。
wizardpage13.gif

設定で表示するウィザードページ
使用許諾 [Setup] セクションで LicenseFile= を設定すると表示される。
wizardpage2.gif

パスワード [Setup] セクションで Password= を設定すると表示される。
wizardpage3.gif

情報/README [Setup] セクションで InfoBeforeFile= を設定すると設定したファイルの内容で表示される。
wizardpage4.gif

ユーザー情報 [Setup] セクションで UserInfoPage=yes を設定すると表示される。

[Code] セクションでイベント関数 CheckSerial を記述している場合には、シリアル番号入力欄が表示される。
wizardpage5.gif

コンポーネントの選択 [Components] セクションで1つ以上エントリが記述されている場合には表示される。
wizardpage7.gif

スタートメニューフォルダの選択 [Icon] セクションで1つ以上エントリが記述されている場合には、表示されるが、
[Setup] セクションで DisableProgramGroupPage=No を指定した場合には、表示されない。
wizardpage8.gif

タスクの選択 [Tasks] セクションで 1つ以上エントリが記述されている場合には、表示される。
wizardpage9.gif

情報/README [Setup] セクションで InfoAfterFile= を設定すると設定したファイルの内容で表示される。
wizardpage10.gif

投稿者 yamadas : 2006年08月16日 21:00 固定リンク

メイン >> 3. インストーラを作成する

サンプルスクリプトを参照する

Inno Setup では、サンプルスクリプトがいくつか用意されています。
サンプルスクリプトを、ビルド・実行・アンインストールして、インストーラ作成の参考にしてみてください。
( 「My Program version 1.5」 がプログラム名として、[プログラムの追加と削除] に表示されます。)

サンプルコードは、インストールディレクトリ\Examples に保存されています。
Inno Setup 5(インストールディレクトリ)
  Examples Inno Setup のサンプルスクリプトが保存されている。
  Languages Inno Setup で作成するインストーラで使用する各言語のデータファイルが保存されている。
  Inno Setup のプログラムファイル等
             :

主なサンプルスクリプトの説明
スクリプトファイル名 内容
Example1.iss MyProg.exe をインストールする。Readme 表示や、プログラムメニューにショートカットを作成する。
Example2.iss Example1.iss の動作に加えて、プログラムメニューにフォルダではなく、直接 MyProg.exe を起動するショートカットを作成し、デスクトップ上にもショートカットを作成する。
Example3.iss Example1.iss の動作に加えて、レジストリに、インストールディレクトリの情報を書き込む。レジストリ書き込みのスクリプトを確認できる。
Languages.iss 複数の言語UI を持つインストーラを作成する場合のスクリプト。デフォルトのままの場合には、英語UI のインストーラが起動するが、[Setup] セクションに、;ShowLanguageDialog=yes を追記することで、英語 / オランダ語 / ドイツ語 を選択するウィザードページが表示される。
タスク追加(インストール時の追加処理)についての記述も確認することができる。
Components.iss コンポーネント単位でインストールさせる場合のスクリプト。3つのコンポーネントを用意したインストーラの動作を確認することができる。

CodeExample1.iss [Code] セクションでイベント関数に記述する場合のサンプルスクリプト。インストールするファイル単位でのイベント発生や、基本的なイベント発生のタイミングを確認することができる。

[イベント関数使用例]
-InitializeWizard
-RegisterPreviousData
-ShouldSkipPage
-NextButtonClick
-UpdateReadyMemo
CodeClasses.iss インストーラで使用する各ウィザードページ、各コントロールを表示するスクリプト。ウィザードページタイプではなく、ウィンドウ UI での表示を行う。コントロールに対するイベント関数処理についての記述例もあり、UI 記述について確認できる。

各ウィザードページ、各コントロールのクラスについては、ヘルプ:使い方-パスカル・スクリプト:サポートクラスレファレンス を参照。
CodeDlg.iss
カスタムでウィザードページを作成する場合のサンプルスクリプト。ユーザー情報とプログラム利用方法とそれに関するウィザードページをカスタムで作成している。プログラム利用方法によっては、インストールするためのキー入力を求めるウィザードページを表示する。
ウィザードページの作成や、ユーザー入力による動作の変更等を確認できる。

[イベント関数使用例]
-InitializeWizard
-RegisterPreviousData
-ShouldSkipPage
-NextButtonClick
-UpdateReadyMemo
CodeDll.iss DLL 呼び出しと実行を行う場合のサンプルスクリプト。WindowsAPI と MyDll.dll(サンプルで添付)の関数を使ってメッセージボックスを表示する。また、関数呼び出しに失敗して例外を発生させるようにしている。
dll の読み込み、関数呼び出しに関する記述を確認することができる。
UninstallCodeDll.iss アンインストール時に、DLL から関数を呼び出すスクリプト。アンインストール実行直前に、DLLからメッセージボックス表示の関数を呼び出す。
UninstallCodeExample1.iss アンインストール時のイベント発生タイミングについて確認することができる。アンインストールを実行して、メッセージボックスが表示されるタイミングを確認する。

[イベント関数使用例]
-InitializeUninstall
-DeinitializeUninstall
-CurUninstallStepChanged
CodeAutomation.iss インストールする環境に存在する Microsoft のアプリケーションに対する処理を行うスクリプト。 Word の起動を確認したり、IIS で仮想ディレクトリを作成したりする処理を行う。
COM オートメーションオブジェクトの利用を行う場合のスクリプト記述例を確認できる。

投稿者 yamadas : 2006年08月15日 20:00 固定リンク