[Windows] Windows Installer XML (WiX)

Windows上でソフトウェアのインストーラー( .msi)を作るツールとしては3通りに分けられる。
Visual Studio 2010を使う
 最低限のことはできる。
 ダイアログの追加などちょっとしたことのサポートが少ない。
 
InstallShield,Wiseなど商用アプリケーションを使う
 実績はかなりある。
 多言語対応が楽。
 高い
Wixなどフリーなソフトウェアを使う
 オープンソースプロジェクト。
 ソフトウェアのレベルは様々。
 WiXだとXMLベースなのでXMLに慣れている人には良い。
 ソースコードがあるので拡張・カスタマイズができる。
業務でインストーラーを作成する必要がでてきたので、まず、VS2010で作ってみた。VS2010のインストーラーは余り良い評価を聞かない。しかし、1種類のパッケージをまるごとインストールするなら十分実用に耐える。スタンダードなUIとしてユーザー同意書や注意書き、様々なテキストやチェックのフォームも用意されている。
VSではGUI上で全部作る必要があり(VSなので当たり前だが)、「ちょっとここを変えたい」というニーズがあるときに何を変えればいいのかわからない、という点が課題だった。少しの変更ならOrcaを使ってテーブルを修正することで対応できる場合もあるだろうが。
Wixの技術情報

Windows Installerの本
技術的な中身(MicrosoftのWindows Installer)の概要を理解しておくと作成ツールの動きがわかりやすい。しかし、プログラム開発に比べると使用頻度の少ない技術であるためか参考文献が少ない。日本語で中身を書いた本は見当たらない。
英語では、
Apressから出ている
The Definitive Guide to Windows Installer
Copyright © 2004 by Phil Wilson

が短くてよい。ApressのウェブサイトでDRMフリー(メールアドレスが各ページに入るだけ)PDF販売があるので、それを購入するのが良いと思う。
InstallShieldは手軽に購入できる価格ではないので、Visual Studio 2010とWiXを使ってinstallerを作ってみた。
Visual Studio
installerを作ること自体初めてなので全体の機能を把握していないのだが、Visual Studio 2010では枝分かれの少ないインストーラーならば簡単にできる。ライセンス同意や注意文、シリアル入力などのUIもデフォルトでそろっている。
WiX
WiXは、XMLベースで構造と動作を記述する。WiXのユーザーがまとめたチュートリアルやWikiに多くの例が載っているのでそれを参考にするとカスタムダイアログの追加程度のことは簡単にできる。XMLで記述したソースと、サポート関数やUI、ローカライズなどを定義したXMLをまとめてコンパイルし msiを作る。
UIは簡単なものから細かい設定ができるものまでいくつかのパターンがインストールされるのでこれを使う。カスタマイズして希望のものを作ることもできる。カスタマイズ情報もXMLで記述。
バージョン3.5ではVisual Studioのplug-inがあり、Visual Studioのソリューションの中でWiXのインストーラーのコンパイルができ、Intellisenseも動く。
一気にローカライズ版を生成できるなどVisual Studio上での開発は案外便利。

広告
%d人のブロガーが「いいね」をつけました。