Windows Installer XML Toolset (WiX Toolset)

Windows環境でプログラム開発をすると、次にはユーザがそのプログラムを利用できるようにしなければいけません。

最近、マイクロソフトはこの問題に対して、「クラウドコンピューティング」という新しい提案をしています。「クラウドコンピューティング」では、ユーザに対するソフトウェア・サービスをすべてインターネットを介して提供するというものです。

すなわち、開発したアプリケーションソフトをユーザのコンピュータにインストールするのではなく、インターネット上のサーバーコンピュータにインストールして、ユーザはこのサーバーにアクセスして、プログラムを使います。

この考え方には長所がありますが、ソフト提供者からすれば負担が大きいので、あらゆるソフトがこのシステムを利用するには、まだ時間が必要だと思います。

一方従来型のコンピュータソフト利用形態「オンプレミス」では、ユーザはソフトをすべて自分のコンピュータにインストールしなければいけません。

これはこれで面倒ですが、「クラウド」がその地位を確保するまでは、まだまだ需要は大きいと思います。

前置きはこれくらいにして、オンプレミス環境下で、開発したソフトをどのようにユーザ環境にインストールするか。

このブログでも何度か取り上げましたが、インストールのための専用プログラムが必要です。

専用ソフトとして有名なのはInstallShieldで、そのほかにもいくつかあって、私はInstallAwareというソフトを使っています。

ただし、これらのソフトは高価で、更に始末が悪いことには頻繁に有料バージョンアップするので、ちょこちょこっとインストール・プログラムを作成したい人は、もっと安直な手段はないものかと考えます。

これまでマイクロソフトは、Visual Studioでセットアッププロジェクトを作成できるようにして、簡易なセットアッププログラムは、これを使って作成することができましたが、VS2012からはこれがなくなり、InstallShieldの簡易版を使うようになっています。ただし、これは今一つ機能的に不満があります。

マイクロソフトは、Windows Installer XML Toolset(WiX Toolset)を無料で公開しました。私もWIXを使いたいとずっと思ってきたし、このブログでも「マスターします」と宣言したのに、いまだに実現していません。

今回はなんとしても、ものにしたいと思っています。ただし、WiXのすべてを理解しようとは思っていなくて、自分にとって必要な部分まで理解すれば「よし」としたいと思います。

目標は次の通りです。

1. 開発したアプリケーションを過不足なくユーザコンピュータにインストール/アンインストールする
2. インストールの途中でシリアル番号の入力を求め、その成否をチェックする(シリアル番号生成のアルゴリズムを決定する)
3. プログラムが動作する環境がターゲットコンピュータに整っているかどうか調べ、もしなければ自動的に不足ソフトをインストールする

WiXの習得を難しくしているのは、日本語のよい参考文献がないことです。私が拠り所とするのは、次のものです。多分これで何とかなるとおもいます。

1. 「CodeZine」 「WiXではじめるWindows Installer作成入門」(WEB 2006年 日本語)
2. 「WiX チュートリアル (日本語訳)」(WEB 2011年 日本語)
3. 「WiX 3.6:A Developer’s Guide to Windows Install XML」(単行本 PACKT 2012年 英語)
4. 「WiX-users — General discussion about the WiX toolset」(Wix-user メーリングリスト 英語)

 

 

 

WiXのすべてをご案内できませんが、私自身がつっかえた、がなんとか理解したポイントを中心にご紹介していきたいと思います。

そして、実務で使えるレベルになればと思います。

次のテスト環境を使います。

1. WiX Toolset V3.9
2. WiX Edit V0.7.5
3. Visual Studio Premium 2012

Visual Studioインストール後に、WiX Toolsetをインストールすれば、VIsual Studioの中でWixプロジェクトが作成できます。

Visual Studioは無料のVisual Studio Express(Visual Studio Community )に、WiX Toolsetを組み込むことができると思いますが、テストしていません。

error: コピーできません !!