K-Nikki

@ke_odakyu9000のブログ的なもの

お手製インストーラ、作って配ってみませんか?

はじめに

この記事は Tokyo City University Advent Calendar 2020 adventar.org の19日目の記事です

昨日の記事は@ktrtcuk2024さんの「プロトコール:外国要人の接遇・国際儀礼に関する雑記」でした

プロトコール:外国要人の接遇・国際儀礼に関する雑記gmahr.wordpress.com

プロトコルプロトコール?と思いましたがどちらもあまり変わらないなと。 意外と「~~マナー」といわれるやつの基本はここにあるのかもしれないとは思いました。

今日の話題

ここを見る人は少なからず何かしらの形でプログラミングはしたことがあるんじゃないかと(勝手に)思っています。

そこで作ったもの、どうやって配ってますか?

  • そもそもweb用のものなのでApacheにのせて公開

  • 自分のサイトにファイルを置いて公開

  • アプリケーション公開サイトにファイルをアップロードする

などなどあると思います。

最近だとアプリストアとか充実してるのでそこにファイル投げればビルドしてパッケージにしてくれるものとかもでてきていますね。

さて、ZIPで配る方、利用者が

  • zipを知らない

  • zipの開きかたがわからない

  • エクスプローラを知らない

  • 置く場所がわからない

なんて質問が来るかもしれませんが1つ1つ対応するのは無理ですよね?

そこで、今日の「オススメ」!

Windowsインストーラ

です!

これがあればインストールからスタートメニュー登録、デスクトップショートカットの作成まで全部インストーラの画面でやってくれます。便利ですね。

非常に便利なので、本当にいろんなところで使ったことがあると思いますが、よくよく考えてみてください、自分で作ったことってありますか?

僕はこの記事を書くまでありませんでした。難しそうとか、いっぱいコード書かなきゃいけないのか・・・とか心配な方も大丈夫!

すべてGUIインストーラを作れるアプリケーションがあります!

今回はそれを使ってWindows用ソフトインストーラを作ってみましたのでその方法まとめです。

必要なもの

  • 完成したアプリケーションの実行ファイル(exe)

  • そのアプリケーションに必要な各種ファイルが入ってるフォルダ(普通は同じ場所に実行ファイルもあると思います)

今回は去年、大学の授業で作った戦車同士が戦うクソゲーをUnityで作っていたのでそのデータをもとにインストーラを作っていきました。

ここから、以下、作り方を書いていきます

インストーラの作り方

1.Inno Setupのインストール

このリンク

jrsoftware.org

からInno Setupをインストールします。

画面下の方に

f:id:ke9000:20201219122955p:plain

こんなリンクがあるのでこれを押せばInno Setupインストーラが立ち上がってくるので画面の指示に従ってインストールしてください*1

2. Inno Setupを起動

インストールしたらInno Setupを起動してください。

起動するとこんな画面が出ると思うので f:id:ke9000:20201219123353p:plain

Create a new script file using the Script Wizard

を選んで下さい。そうすると各種入力画面が出てきます

3. 作成ウィザードに従って入力をしていく

(1) アプリケーション情報の入力

f:id:ke9000:20201219123640p:plain

最初にこの画面が出ますがnext>を押してください。

f:id:ke9000:20201219123809p:plain

そうするとこんな画面が出てきて上から

Application name(必須): アプリ名
Application version(必須): バージョン
Application publisher: 作者名
Application website: 作者のサイト

という感じで入力ができるので登録してください。

(2)アプリケーションのインストール先指定

続いて、このような画面になります。 f:id:ke9000:20201219124017p:plain

Application destination base folder(必須): アプリのフォルダをどこに置くのかの指定
    Program files folder: 基本は C:\program files\になります
    Custom: カスタムで指定も可能です
Application folder name(必須):上記で指定したフォルダの「中に作る」フォルダ名
Allow user to change the application folder: インストーラを使う人がインストール先を自分で変更できるようにするか
The application doesn't need a folder : 関連データがなくて実行ファイルだけ等の場合にはここにチェックを入れる

(3)作ったアプリケーションの登録

この画面では自分がビルドした実行ファイル・関連データを入れます f:id:ke9000:20201219124602p:plain

Application main executable file(必須): メインの実行ファイル(exe)ファイルを指定します
Allow user to start the application after Setup has finished: インストールが全部終わったあとすぐに起動できるようにするか
The application doesn't have a main executable file: メインの実行ファイルがない(web系など)場合
Other application files:メインのexe以外のデータをファイル指定、フォルダ指定で追加できます

(4)ソフトへの拡張子関連付け

エディタ系とかの場合、開くファイルの関連付け指定がここで出来ます。 f:id:ke9000:20201219125042p:plain

Associate a file type to the main executable: 拡張子をソフトに関連付け設定するか
Application file type name: 拡張子の情報におけるファイルの形式の説明
Application File type extension: 関連付けする拡張子

(5) スタートメニューとデスクトップショートカットの作成

f:id:ke9000:20201219125541p:plain

Create a shortcut to the main executable in the common start menu Programs folder: 以下の画像参照

有名フリーソフト ImgBurnを例に説明します

  • チェックを入れると上のフォルダの中にアプリケーションが入ります

  • チェックを入れないと下のアイコンのみが登録されます

f:id:ke9000:20201219125751p:plain

Application Start Menu folder name: 上記の例でいう「ImgBurn」のフォルダ名
Allow user to change the Start Menu folder name: スタートメニューフォルダ名をユーザが変えられるようにする
Allow user to disable Start Menu folder creation: ユーザがフォルダを作らないことを選択可能にする
Create an Internet shortcut in the Start Menu folder: インターネットショートカットをメニューフォルダ内に作るか
Create an Uninstall shortcut in the Start Menu folder: アンインストール用のショートカットをメニューフォルダ内に作るか
Allow user to create a desktop shortcut: デスクトップショートカットの作成をユーザが選べるようにする

(6)ドキュメント・ライセンスの登録

f:id:ke9000:20201219130745p:plain

License file:ライセンスファイル
Information file shown before installation: インストール前に表示する情報(テキストファイル?)
Information file shown after installation: インストール後に表示する情報(テキストファイル?)

(7)インストールモードの選択

f:id:ke9000:20201219130942p:plain

Administrative install mode: 管理者モードでインストール
Non administrative install mode :ユーザモードでインストール
Allow user to override the install mode via command line :コマンドラインでユーザがインストールモードを変えられるようにする
Ask the user to choose the install mode at startup: インストーラ起動時にどっちのモードで起動するか選べるようにする

(8)インストーラの言語設定

f:id:ke9000:20201219131248p:plain ここでデフォルトは英語ですがJapaneseのみにもできますし、複数選択しておくこともできます。

(9)コンパイラ設定

f:id:ke9000:20201219131358p:plain

Custom compiler output folder:できたインストーラの保存先
Compiler output base file name:出力するインストーラのファイル名
Custom Setup icon file: インストーラのアイコン
Setup password: インストーラにパスワードがかけられるようです
Use the password to encrypt the application files: 各ファイルにもパスワードをかけるか

(10)スクリプトを#defineを用いて生成するか

f:id:ke9000:20201219131753p:plain これを行うと、後からスクリプト変更してバージョンを更新するなどして再度インストーラを作るときに楽になるよという記載があります。 便利なのでやっておきましょう

(11)ウィザード終了!

お疲れさまでしたこれでfinishを押せば作成準備は完了です f:id:ke9000:20201219132010p:plain

3. コンパイルする

ウィザードが終わると

コンパイルしていいか f:id:ke9000:20201219132049p:plain

スクリプトを保存するか f:id:ke9000:20201219132108p:plain

が聞かれるので、どちらもyesでファイル保存をしてコンパイルしてもらいましょう

そして、コンパイルが始まります・・・! f:id:ke9000:20201219132146p:plain

finishedと出れば完成です! f:id:ke9000:20201219132221p:plain

動作確認

まず、インストーラが生成されたか確認します。

f:id:ke9000:20201219134744p:plain

あれば、起動して一通り動かしてみます。 f:id:ke9000:20201219134831p:plainf:id:ke9000:20201219134843p:plainf:id:ke9000:20201219134846p:plainf:id:ke9000:20201219134849p:plainf:id:ke9000:20201219134852p:plainf:id:ke9000:20201219134856p:plainf:id:ke9000:20201219134859p:plain

最後にアンインストールの一覧に追加されてるかみてみます

f:id:ke9000:20201219135126p:plain ここまで動いていれば完成です!

まとめ

みんなもインストーラをちゃんと作って不要なユーザサポートを減らそう!


最後に

この記事は Tokyo City University Advent Calendar 2019 adventar.org の19日目の記事でした

明日の記事はBOBさんの「俺と軍事と飯~防衛装備品を見ながら食う飯はうまい~/去年の記事に関するお詫び」です。

話題のBOBさんの記事めっちゃ楽しみです。


*1:インストーラをつくるためにインストーラを回す、たのしいですね