7
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Posted at

※この記事はブログからの転載記事です。

はじめに

本記事はWiXを使って無料でインストーラーを作る!の続編です。

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

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

まずは前回同様、WiXEdit wizardを利用して骨格を作成する

この章の詳細は前回の記事をご覧ください。

まずは前回同様、WiX Editを起動して、画面の左上、「File」をクリックし、出てきたメニューの一番上の「New」を選択します。
image.png
例によってウィザード画面が出てくるので、このウィザードに沿ってインストーラを構築していきます。
「Next」を押して次へ。
image.png
前編同様に「Import directory」をクリックして、出てきたウィンドウでアプリケーションが置かれているディレクトリを選択してOKを押します。

※このとき、 C:\などのWindowsがインストールされてるドライブ上のフォルダを選択すると、WiXEdit 0.7.5のバグにより手間が増えてしまいます。できればD:\ドライブなど別ドライブ上で作業してください。
image.png
もとのウィンドウを見てみると選択したディレクトリがPFiles以下に追加されていることを確認したら、「Next」を押して次に進みます。
image.png
次に出てくるインストーラの機能を追加する画面では...
image.png
今回は「Add Userinterface」、「Desktop application shortcut」、「Startmenu application shortcut」
にチェックを付けて「Next」で先に進みます。
image.png
この画面ではインストーラのUIの種類を選択します。とりあえず今回は「Minimal」で次へ進みます。
次にデスクトップ上に表示するショートカットの設定をします。
image.png
上段(①): ショートカットを作成する対象のファイルを選択します。通常は実行ファイルを選択します。
下段(②): ショートカットの名前を入力します。
両方とも設定したら、「Next」を押して次へ進みます。
image.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
次に「Properties」を選択し、右側パネルの空欄で右クリックし、「Add New」を選択します。
image.png
「Enter Resource Name」ダイアログが表示されるので、「WIXUI_INSTALLDIR」と入力し、OKボタンを押します。
image.png
OKボタンを押したあと出現した「WIXUI_INSTALLDIR」の右の欄(境界がわかりにくい)に、「Files」内の"ウィザードでInport directoryしたフォルダ"のIdを貼り付けます。
image.png
このままでは「~に送る」メニュー向けのショートカットが生成できないので、
同様に、「DISABLEADVTSHORTCUTS」項目を作成し、値に「1」を設定します。
image.png
次に「~に送る」メニューへの登録を行います。
まずは「Files」の「SourceDir」を右クリックし、出てきたメニューから「New」→「Directory」を選択し、新しいDirectoryを追加します。
image.png
追加されたDirectoryを選択し、右のパネルからIdを「SendToFolder」に変更します。
image.png
そして、"ウィザードでInport directoryしたフォルダ"内のショートカットの対象にしたいファイル(実行ファイル)の+ボタンを押し、中のファイル名を右クリック、出てきたメニューを「New」→「Shortcut」と選びます。
image.png
すると、新しく「Shortcut」が生成されるので、それを選択し、右側パネルで以下のように設定します。出ていない項目がある場合は、空欄を右クリックからNewで追加してください。

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

image.png
設定できれば次に「Resources」の「Icon」タブの空欄を右クリックし、「Add New」を選択します。
image.png
例によって、「Enter Resource Name」ダイアログが表示されるので、「SendToIcon.exe」と入力してOKを押します。
image.png
この状態では右の欄が空欄なので、DecktopIcon.exeから内容をコピペして持ってきます。
image.png

msiファイルを作成!

ここまで来たら「File」の「Save」より保存して、前編同様にコマンドを実行します。
コマンドプロンプトを開き、保存したディレクトリまで進んで...

candle -nologo {WiXのファイル名} -out {WiXのファイル名}.obj -ext WixUIExtension
light -nologo {WiXのファイル名}.obj -out {WiXのファイル名}.msi -ext WixUIExtension

を実行!
...すると、msiファイルが生成されているはずです!

締め(あっさりめ)

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

7
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?