続・WiXを使って無料でインストーラーを作る！

※この[記事はブログからの転載記事](http://minimum-opus.blog.jp/archives/11395098.html)です。

はじめに
=======
本記事は[WiXを使って無料でインストーラーを作る！](https://qiita.com/Minimum-Opus/items/bf0a360c9d37ca03a272)の続編です。

前回、インストーラを作成しましたが正直、**UIがあることによる恩恵はほぼない**ような状態でした。

今回はインストール先を選択するダイアログを付け、「～に送る」メニューにショートカットを追加して、ユーザーが何も作業せずとも右クリックから利用できるようにしていきます。

まずは前回同様、WiXEdit wizardを利用して骨格を作成する
==================================================
この章の詳細は[前回の記事](https://qiita.com/Minimum-Opus/items/bf0a360c9d37ca03a272)をご覧ください。

まずは前回同様、WiX Editを起動して、画面の左上、「File」をクリックし、出てきたメニューの一番上の「New」を選択します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/278909/723abfdd-9b9e-7354-cd84-76a05ddaa6e3.png)
例によってウィザード画面が出てくるので、このウィザードに沿ってインストーラを構築していきます。 
「Next」を押して次へ。 
![image.png](https://qiita-image-store.s3.amazonaws.com/0/278909/99856428-3b58-0a5e-6ec0-1d0bd903bc22.png)
前編同様に「Import directory」をクリックして、出てきたウィンドウでアプリケーションが置かれているディレクトリを選択してOKを押します。

※このとき、 `C:\`などのWindowsがインストールされてるドライブ上のフォルダを選択すると、WiXEdit 0.7.5のバグにより手間が増えてしまいます。できれば`D:\`ドライブなど別ドライブ上で作業してください。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/278909/5db929c1-0ea4-5148-cda3-5f922469d576.png)
もとのウィンドウを見てみると選択したディレクトリがPFiles以下に追加されていることを確認したら、「Next」を押して次に進みます。 
![image.png](https://qiita-image-store.s3.amazonaws.com/0/278909/c70ae906-de2e-9601-e264-14342a97031d.png)
次に出てくるインストーラの機能を追加する画面では... 
![image.png](https://qiita-image-store.s3.amazonaws.com/0/278909/85606264-bf31-4c56-2350-ab400fdd1c4a.png)
今回は「Add Userinterface」、「Desktop application shortcut」、「Startmenu application shortcut」
にチェックを付けて「Next」で先に進みます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/278909/6396bc5d-ecfd-336a-77e3-d4f13ae0633a.png)
この画面ではインストーラのUIの種類を選択します。とりあえず今回は「Minimal」で次へ進みます。 
次にデスクトップ上に表示するショートカットの設定をします。 
![image.png](https://qiita-image-store.s3.amazonaws.com/0/278909/6bc97555-3f5f-1438-1ac2-25bbe84db31c.png)
上段(①): ショートカットを作成する対象のファイルを選択します。通常は実行ファイルを選択します。
下段(②): ショートカットの名前を入力します。
両方とも設定したら、「Next」を押して次へ進みます。 
![image.png](https://qiita-image-store.s3.amazonaws.com/0/278909/3d19a2bf-ddb6-a6d8-f9a3-1e8c6a0872cc.png)
この画面では... 
上段(①): ショートカットを作成する対象のファイルを選択します。通常は実行ファイルを選択します。
中段(②): ショートカットの名前を入力します。
下段(③): ショートカットが格納されるプログラムグループのディレクトリ名を入力します。
項目を埋められたら次へ進みます。 

そして最後に「Finish」をクリックしてウィザードを終了します。

WiX Editのメインウィンドウで前回と同じ設定を行う。
=============================================
前編同様、メインのウィンドウに戻ってくるので、前編を参考に以下の設定をします。

Global > Product
----------------
 - **Codepage**:  932 *(日本語)*
 - **Id**: *(変更しない)*
 - **Language**: 1041 *(日本語)*
 - **Manufacturer**: *(作者名)*
 - **Name**: *(製品名)*
 - **UpgradeCode**: *(変更しない)*
 - **Version**: *(メジャーVer).(マイナーVer).(ビルド番号).(任意の数字)、Verは255まで、ビルド番号は65535まで*

Global > Package
----------------
 - **Comments**: *ファイルの右クリック→プロパティ→詳細にて表示されるコメントの編集ができる。*
 - **Compressed**: *(変更しない)*
 - **Description**: *ソフトウェアの説明*
 - **InstallVersion**: *(変更しない)*
 - **SummaryCodepage**: 932 *(日本語)*

Global > WixVariable
--------------------
 - **Id**: WixUILicenseRtf
 - **Value**: license.rtf

そして前回同様、license.rtfを記述してResourcesに格納します。

ここまでできれば、追加で次の操作を行います。

WiX Editのメインウィンドウで追加の設定を行う
=========================================
まずはインストール先を変更できるようにUIを変更します。
「Global」の「UIRef」を選択して、右側のリストをのIDを「WixUI_Minimal」から「WixUI_InstallDir」に変更します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/278909/76ee1056-85bd-db3c-5f0e-0032095d335c.png)
次に「Properties」を選択し、右側パネルの空欄で右クリックし、「Add New」を選択します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/278909/ee1a1620-eb5a-c54d-271f-8e17c8c3eeda.png)
「Enter Resource Name」ダイアログが表示されるので、「WIXUI_INSTALLDIR」と入力し、OKボタンを押します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/278909/74592833-cd9a-9206-a612-c1ddfd736931.png)
OKボタンを押したあと出現した「WIXUI_INSTALLDIR」の右の欄(境界がわかりにくい)に、「Files」内の"ウィザードでInport directoryしたフォルダ"のIdを貼り付けます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/278909/15a794db-7ebf-4fa7-e2dd-72c04262d358.png)
このままでは「～に送る」メニュー向けのショートカットが生成できないので、
同様に、「DISABLEADVTSHORTCUTS」項目を作成し、値に「1」を設定します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/278909/a2e431b1-2322-754f-bc1f-55abb950d40f.png)
次に「～に送る」メニューへの登録を行います。
まずは「Files」の「SourceDir」を右クリックし、出てきたメニューから「New」→「Directory」を選択し、新しいDirectoryを追加します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/278909/c2cc4437-13df-901e-04ef-4334f839d288.png)
追加されたDirectoryを選択し、右のパネルからIdを「SendToFolder」に変更します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/278909/71c83946-1dbe-f410-6e44-98fa36b225f1.png)
そして、"ウィザードでInport directoryしたフォルダ"内のショートカットの対象にしたいファイル(実行ファイル)の+ボタンを押し、中のファイル名を右クリック、出てきたメニューを「New」→「Shortcut」と選びます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/278909/0e8098f5-d7ad-af62-fc57-1cd78da56d1e.png)
すると、新しく「Shortcut」が生成されるので、それを選択し、右側パネルで以下のように設定します。出ていない項目がある場合は、空欄を右クリックからNewで追加してください。

 - **Directory**: SendToFolder *(ショートカット設置先ディレクトリ)*
 - **Icon**: SendToIcon.exe *(ショートカットに設定されるアイコンのリソースID)*
 - **IconIndex**: 0 *(利用するアイコン内に格納されている画像番号、基本0)*
 - **Id**: sendtoShortcut *(任意。一意になるように)*
 - **Name**: *(任意。これが実際のメニューに表示される。)*
 - **WorkingDirectory**: INSTALLDIR *(「～に送る」メニューから呼び出したときどこで作業するかを設定する。)*

![image.png](https://qiita-image-store.s3.amazonaws.com/0/278909/9170bf68-0a30-595a-a098-7f4a8d6f5c24.png)
設定できれば次に「Resources」の「Icon」タブの空欄を右クリックし、「Add New」を選択します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/278909/e16ed84c-8358-3ed0-2859-d2f5e0f61e28.png)
例によって、「Enter Resource Name」ダイアログが表示されるので、「SendToIcon.exe」と入力してOKを押します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/278909/0c4af364-a39a-8344-c1a4-1571ab1d0dbb.png)
この状態では右の欄が空欄なので、DecktopIcon.exeから内容をコピペして持ってきます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/278909/609e85db-be77-ff4a-0cd8-37bc3f4a68a8.png)

msiファイルを作成！
==================
ここまで来たら「File」の「Save」より保存して、前編同様にコマンドを実行します。
コマンドプロンプトを開き、保存したディレクトリまで進んで...
```
candle -nologo {WiXのファイル名} -out {WiXのファイル名}.obj -ext WixUIExtension
light -nologo {WiXのファイル名}.obj -out {WiXのファイル名}.msi -ext WixUIExtension
```
を実行！
...すると、msiファイルが生成されているはずです！

締め(あっさりめ)
================
インストーラを用意してあげるだけで「製品っぽさ」が**ぐんっ**と上がるので、みなさんも是非インストーラを用意されてみてはいかがでしょうか？