Inno Setup覚え書き

自前のアプリケーションのインストーラを**Inno Setup**で作りました。
ネット上の情報では足りず試行錯誤しましたので、備忘録的にまとめておきます。
使用したバージョンは6.0.2です。
なお、下記にデベロッパーガイドがあります。
あわせて参照して下さい。
[Inno Setup 日本語 デベロッパーズガイド](http://inno-setup.sidefeed.com/)
# 全体
設定をグループ分けするものが**セクション**です。
セクション名は中括弧（[]）で囲みます。
セクションの中に**ディレクティブ**を置いていきます。
ディレクティブは、“ディレクティブ=値”の形式で指定します。
セミコロンで区切って、1行に複数のディレクティブを置いていく場合もあります。
すべてのセクションやディレクティブをカバーできていません。
最小限のインストーラを作るにはという位置付けです。

# [Setup]セクション
基本となるセクションです。
アプリケーションの名前や各種のフォルダなどを指定します。
## AppName
アプリケーションの名前です。
ウィザードのタイトルバーや「ようこそ」画面で使用されます。

```
AppName=アプリケーション
```
## AppVerName
アプリケーションのバージョンを含めた名前です。
ウィザードでは基本的に出てきませんが、内部的に使用されるようです。

```
AppVerName=アプリケーション 1.00
```
## OutputBaseFilename
コンパイルされたインストーラの出力ファイル名のベース部分を指定します。
拡張子は“.exe”となります。
OutputDirで指定するフォルダに保存されます。

```
OutputBaseFilename=setup
```
## DefaultDirName
インストール時に使用されるインストール先のデフォルトです。
特殊変数{pf}を使うと、“C:¥Program Files”を暗黙に指定できます。

```
DefaultDirName=c:¥install
DefaultDirName={pf}¥myapp
```
## AppendDefaultDirName
インストール先を「参照」ボタンで変更した場合、DefaultDirNameなどで指定するフォルダの最後のノードを自動的に付加するか指定します。
既定値はyesになっていて、この場合たとえば“{pf}¥install”の“install”が常に付加されます。
noにすれば、選択したフォルダが素直に使われます。

```
AppendDefaultDirName=no
```
## VersionInfoVersion
インストーラに埋め込むバージョン情報のうちバージョン文字列を指定します。

```
VersionInfoVersion=2.11.2345.5678
```
## VersionInfoDescription
インストーラに埋め込むバージョン情報のうち説明を指定します。

```
VersionInfoDescription=プログラムのインストーラ
```
## AppCopyright
インストーラに埋め込む著作権情報を指定します。

```
AppCopyright=たまデジ。
```
## SetupIconFile
インストーラに設定するアイコンのイメージファイル（*.ico）をフルパスで指定します。

```
SetupIconFile=C:\Users\user\Documents\app\app.ico
```
## WizardImageFile
インストーラのウィザード画面の背景に使うイメージファイル（*.bmp）をフルパスで指定します。
「ようこそ」画面等で使われる大きなイメージです。

```
WizardImageFile=C:\Users\user\Documents\app\image.bmp
```
## WizardSmallImageFile
インストーラのウィザード画面の背景に使うイメージファイル（小）（*.bmp）をフルパスで指定します。
ウィザードの途中のステップで使用される、右上に表示される小さなイメージです。

```
WizardSmallImageFile=C:\Users\user\Documents\app\image_small.bmp
```
## SourceDir
コピーするファイルの起点フォルダを指定します。

```
SourceDir=C:\Users\user\Documents\app\files
```
## OutputDir
コンパイルされたインストーラの出力先を指定します。ここに、OutputBaseFilenameで指定したファイル名.exeでインストーラが保存されます。

```
OutputDir=C:\Users\user\Documents\app\output
```
## DefaultGroupName
スタートメニューのグループ名を指定します。

```
DefaultGroupName=アプリ
```
## DisableWelcomePage
「ようこそ」ページの表示を無効にするか指定します。noなら有効に、yesなら無効になります。

```
DisableWelcomePage=no
```
# [Files]セクション
コピーするファイルの指定を行うセクションです。
コピー元ファイルの指定が相対パスの場合、[Setup]セクションのSourceDirで指定したフォルダが使用されます。
コピー先の指定が相対パスの場合、[Setup]セクションのDefaultDirNameで指定したフォルダが使用されます（インストール時に変更されたらそれが使用される）。
なお、[Files]セクションでは、SourceとDestDirがペアで使われます。
## Source
コピーするファイルの指定です。
ファイル名を個別に記述するほか、ワイルドカードによる指定も可能です。
すべてのファイルの指定は*です。
サブフォルダは対象になりませんので注意して下さい。
## DestDir
コピー先の指定です。
特殊変数{app}を指定すると、指定されたインストール先が使用されます。

```
Source: *; DestDir: "{app}"
Source: data\*; DestDir: "{app}\data"
```
# [Languages]セクション
インストーラが使用する言語を指定します。
あらかじめ入手しておいた言語メッセージファイルを指定します。
なお、[Languages]セクションでは、NameとMessagesFileがペアで使われます。
## Name
言語を識別するための名称です。
## MessagesFile
言語ごとに指定するメッセージファイルをフルパスで指定します。

```
Name: japanese; MessagesFile: compiler:Languages\Japanese.isl
```
# [Tasks]セクション
追加のタスクを指定するセクションです。
Name, Description, GroupDescriptionを組にして指定します。
## Name
タスクの名称（内容）を指定します。
"DesktopIcon"ではデスクトップにアイコンを作成します。
"QuickLaunchIcon"ではクイック起動にアイコンを作成します。
## Description
ウィザード画面に実際に表示されるテキストを指定します。
## GroupDescription
タスクをグルーピングするときに、そのグループ名を指定します。
同じグループ名を持ったタスクは一緒にまとめられます。

```
Name: "DesktopIcon"; Description: "デスクトップにアイコンを作成する"; GroupDescription: "追加のアイコン："
Name: "QuickLaunchIcon"; Description: "クイック起動アイコンを作成する"; GroupDescription: "追加のアイコン："
```
# [Icons]セクション
スタートメニューやデスクトップに作成されるショートカットの指定です。
Name, Filename, WorkingDir, Tasksなどを組にして指定します。
## Name
アイコンの名称を指定します。
特殊変数{group}はスタートメニューに作成されるグループ（DefaultGroupNameで指定）を表します。
特殊変数{autodesktop}はアイコンが自動生成されるデスクトップを表します。
## Filename
アイコンに設定する起動ファイル名です。
特殊変数{app}はインストール先を、{uninstallexe}はアンインストーラプログラム（Inno Setupが自動的に作成）を表します。
## WorkingDir
起動するプログラムの作業ディレクトリです。
特殊変数{app}の意味は同じです。
## Tasks
[Tasks]セクションで指定したタスクとの関連付けになります。

```
Name: "{group}\アプリ"; Filename: "{app}\appli.exe"; WorkingDir: "{app}"
Name: "{group}\アプリアンインストーラ"; Filename: "{uninstallexe}"
Name: "{autodesktop}\アプリ"; Filename: "{app}\appli.exe"; WorkingDir: "{app}"; Tasks: "DesktopIcon"
```
# [Run]セクション
インストール終了後に起動するプログラムの指定です。
Filename, Description, Flagsなどを組にして指定します。
## Filename
起動するプログラムの指定です。
特殊変数{app}が使えます。
## Description
ウィザードに表示する内容です。
## Flags
起動についての細かな指定です。
postinstallでは、インストーラ終了後に行う処理になります。

```
Filename: "{app}\appli.exe"; Description: "アプリを起動する"; Flags: postinstall
```