Inno SetupをUIのみで使ってみる

# Inno SetupをUIのみで使ってみる

## １．ご挨拶
こんにちは。日本情報システム株式会社ICTソリューション部の @Bamboooo (たけ)です。
[前回の記事](https://qiita.com/Bamboooo/items/71b5d2f6cb2df66a5415)に引き続き、Windows用のインストーラー作成ツールのご紹介です。
Inno SetupというWindows用インストーラー作成ツールをご紹介します。
ツールのUI操作でできることを実際のインストーラー作成を通して見ていきます。
(この記事で使用するUIとはGUIのことでCUIのことではありません)

## ２．インストーラーについて（[前回記事](https://qiita.com/Bamboooo/items/71b5d2f6cb2df66a5415)の再掲）
インストーラーとは、自分または他者が作成したソフトウェアをコンピューターに導入して使用可能にするためのコンピュータープログラムです。ソフトウェアを利用する方法として、インストーラーを使用せず、ソフトウェアファイルをダブルクリックして直接起動させる方法もあります。
インストーラーを使用する利点として、導入するソフトウェアがアプリケーションだった場合、コンピューターにアプリケーションとして認識させることができます。アプリケーションとして認識させることで、PCの「アプリケーション」から、検索・管理をすることができます。また、インストーラーを実行するだけでソフトウェアが指定のフォルダーにインストールされるので、[zipファイルを指定のフォルダーに解凍]というPCに疎い方が顔を引きつらせるような作業も回避することができます。

## ３．Inno Setupとは
Inno Setupとは、オープンソースで開発されているインストーラー作成ソフトウェアです。Windowsにインストールした際には、Inno Setup Compilerというアプリケーションから起動することになります。UIベースでアプリケーション名、ライセンス、ファイルパスの指定などをどんどん選択していくので、比較的簡単にインストーラーを作成することができます。

Inno Setupを使用して簡単なインストーラーを作成してみましょう！

今回はVisual Studioで作成したこちらの簡単なフォームアプリのインストーラーを作成してみます。
![image3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3472355/6cae04ad-8841-9a11-b592-75c83db07186.png)


アプリケーションから[Inno Setup Compiler]を起動します。
[Create a new script file using the Script Wizard]を選択し、ポップアップ画面右下の[OK]をクリックします。
![image12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3472355/e2986dfa-6142-1ada-590c-30958f533492.png)


ウィザードが表示され、インストーラーの設定を始めていきます。
[Next]をクリックします。
![image18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3472355/c1101732-8b68-fef7-0ee1-63dbf545b5a8.png)


アプリケーションの情報を入力します。
Application name：インストールしたいアプリケーションの名前を入力します。（必須）
Application version：アプリケーションのバージョンを入力します。（必須）
Application publisher：アプリケーションの開発元を入力します。
Application website：アプリケーションに関連するwebサイトのURLを入力します。
入力を終えたら[Next]を押します。
![image2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3472355/1142f192-54af-129c-b878-82ed51645e21.png)


インストール後のフォルダー関連の設定をします。
[Application destination base folder]：標準インストール先を設定します。
	[Program Files folder]：[C:\Program Files(x86)]にインストールします。
	[(Custom)]：テキストボックスでインストール先のパスを指定します。
[Application folder name]：アプリケーションフォルダー名を入力します。
[Allow user to change the application]：ユーザーによる編集を許可します。
[Other]：アプリケーションフォルダーを作成しません。
特にこだわらないので初期値のまま[Next]をクリックします。
![image16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3472355/0fbb4239-7354-d4d8-05a2-a526737808b3.png)


アプリケーションに必要なファイルを選択します。
[Application main executable file]：メインとなるアプリケーションファイルを選択します。
[Allow user to start the application after Setup has finished]：インストールを終えた後にアプリケーションを起動することを許可します。
[The application doesn’t have a main executable file]：メインファイルを必要としないとき選択します。
[Other application files]：メイン以外に必要なファイル（dll等）を追加します。
[Next]をクリックします。
![image10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3472355/aa39b4d3-4212-5bdf-2e6e-fd1f838210c6.png)



アプリケーションファイルの関連付けを設定します。
[Associate a file type to the main executable]：メインファイルにファイルタイプの関連付けを行います。
[Application file type name]：ファイルタイプの名前を入力します。
[Application file type extension]：拡張子を決定します。
こだわりはないので、編集せずに[Next]をクリックします。
![image15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3472355/a54f3eee-1695-389c-47ed-788d0b5c753a.png)


アプリケーションのショートカットを設定します。
[Create a shortcut to the main executable in the Start Menu Program folder]
：スタートメニューにアプリケーションのショートカットを作成します。
[Allow user to create a desktop shortcut]：デスクトップにショートカットを作成することを許可します。
編集しないで[Next]をクリックします。
![image14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3472355/4e983bbf-6307-2b1f-dce0-92dedfbc13bd.png)


インストール時に表示されるドキュメントを追加します。
[License file]：確認してほしい規約事項を記したファイルを指定します。
[Information file shown before installation]：インストール前に表示したいドキュメントを指定します。
[Information file shown after installation]：インストール後に表示したいファイルを指定します。
表示するものもないので、[Next]をクリックします。
![image1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3472355/a5a2db9e-0944-01ad-52c2-450bc049d08e.png)


インストールモードを指定します。
[Administrative install mode]：管理者権限ですべてのユーザーにインストールします。
[Non administrative install mode]：管理者権限を使用せず、作業ユーザーのみにインストールします。
変更せずに[Next]をクリックします。
![image19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3472355/ff5a8058-d4ca-a8ae-3712-96c844f278f3.png)


インストール時の言語を指定します。（複数選択可）
お好きな言語を選んで[Next]をクリックします。
![image5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3472355/baead4da-cdb2-30bb-ce1e-f903532a29cd.png)


インストーラーの出力先を設定します。
[Custom compiler output folder]：出力時のフォルダー名を入力します。
[Compiler output base file name]：出力時のインストーラー名を入力します。
[Custom Setup icon file]：インストーラーのアイコンを指定します。
[Setup password]：インストール時にパスワードを要求します。（入力した場合のみ）
必要項目を入力したら、[Next]をクリックします。
![image6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3472355/259bd507-2c3c-c41a-0222-ae12e7737f4a.png)


#define compiler directivesを使用するかを指定します。
#define compiler directivesを使用すると、スクリプトを簡略化することができます。
変更せずに[Next]をクリックします。
![image11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3472355/8c71def4-fb50-4c06-ce91-36ec5d707c46.png)


以上でUIでの設定は終了です。
[Finish]をクリックします。
![image17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3472355/03ac4b4a-e00d-2cc1-44c0-6a81ab3cba0c.png)


Inno Setup Compilerに先ほどの設定がスクリプトで表示されます。
始めに[Would you like the new script now?]と聞かれます。
[はい]をクリックすると、コンパイルの準備をします。
![image7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3472355/0c5c0ba6-0c40-ab9e-a79e-170efd5163a3.png)


[はい]をクリックすると作成したInno Setupファイルを保存するよう求められます。
[はい]をクリックしてインストーラーの出力先を指定します。
![image13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3472355/5a004507-e116-70b5-b2dd-8454d0069cba.png)


保存し終えると、コンパイルが始まります。
下記のように[Finished.]と表示されればインストーラー作成が成功しています。
![image9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3472355/f3ed9f74-4efc-54b3-38f9-ebae10252c13.png)



コンパイル時に指定した保存先にセットアップで指定した名前を持つフォルダーが作成されています。このフォルダーの中に作成されている、セットアップ時に指定したインストーラー名をもつexeファイルがインストーラーになります。
![image8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3472355/09837b3a-06b6-4205-bf53-9fa2f9b16af7.png)



インストールして確かめてみましょう。
インストール時に指定した保存先にインストールされています。
無事exeも起動しましたね。Inno Setupでは、アンインストーラーも同時にインストールされます。
![image4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3472355/f09b79e7-fe9e-76ab-4bba-8e340d962f2f.png)



## ４．使ってみて
弊社では、Inno Setupを使用してインストーラーを作成することを検討しています。
以下はUIを用いて作成してみた私なりの感想です。

できたこと
・順を追って作成していくため、とても分かりやすく簡単
・Inno Setup単体でインストーラーを作成することができる

できなかったこと
・階層構造のフォルダーの中にファイルを置くことができない
・一度issファイルを作成したら、そのファイルでUIを使用することができない

Inno Setupでは簡単にインストーラーを作成することができます。インストーラーを初めて作る方にはInno Setupをお勧めします。UIで順を追いながら各項目、パスを設定していくため、何をしたらいいのかがよくわかります。理解が早い方であれば、参考サイトを閲覧しなくても作成できてしまうかもしれません。また、Inno Setup単体で完結されているのも嬉しい点です。
一方で、インストーラーを作成する際にフォルダー内にファイルを配置することができませんでした。階層のないソフトウェアであれば問題はないでしょうが、階層を持つソフトウェアでは工夫が必要です。スクリプトを編集して実現することが可能ですが、UIでできると便利ですよね。
また、一度作成したissファイルはUIで編集することができません。名前を変える、ファイルを一つ追加する程度であれば問題はないでしょうが、大きな変更があった際には多少時間がかかります。

## ５．まとめ
UIを用いたインストーラー作成において、インストーラー作成初心者の方にInno Setupをお勧めします。
もちろん、スクリプトベースで編集することもできます。スクリプトをいじってみると、issファイルではフォルダーの階層構造を実現できました。UIでの作成に慣れ、より高級なインストーラーを作成したい場合にはUIを用いてベースを作り、テキストエディタでファイルを開いてコアな編集をしてみると面白いかもしれません。

## ６．最後に
今回は前回に引き続き、インストーラー作成ツールのご紹介となりました。数あるツールの中でも使いやすいツールだと感じました。再三になりますが、間違っている点・勘違いしている点がありましたらご教授願います。
インストーラーを実行するだけで作ったソフトウェアが実行できるなんて便利ですよね。
ぜひとも！インストーラーを作成していただき、満足感と達成感を得てほしいです。