SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

WiXではじめるWindows Installer作成入門

WiXではじめるWindows Installer作成入門 第1回

Windows Installer XML(WiX) toolsetを利用したmsiの作成


  • このエントリーをはてなブックマークに追加

本連載は、WiXを利用してインストーラを作成するチュートリアル形式の入門記事です。第1回となる今回はインストーラ作成環境の構築と、もっとも単純なインストーラの作成までを行います。

  • このエントリーをはてなブックマークに追加

はじめに

 本連載は、MS初のオープンソースとしても知られる、Windows Install XML(WiX) toolsetを利用してインストーラを作成する方法を、チュートリアル形式で解説します。WiXの説明を交え、実践でも役立つ内容を数回に分けてお送りいたします。

対象読者

 インストーラを必要とするすべての開発者。

必要な環境

 WiXの動作には.NET Framework 1.1または2.0のランタイムが必要となります。本連載ではUnmanaged C++のDLL(通常のWin32形式のDLL)の作成も行ないますので、Visual C++ 2005 Express EditionまたはVisual Studio 2005 Standard Edition以上がインストールされている環境を想定しています。もちろん、Visual Studio .NET 2003でも利用できます。なお、すべてのエディションを扱っていると説明が冗長になってしまうため、Visual Studioについて言及する場合は、Visual C++ 2005 Express Editionを対象として解説することにします。

Windows Installer SDKのインストール

 すべての開発の基本となる、Software Development Kit(SDK)をインストールします。Windows Installer SDKはPlatformSDKの一部として統合されています。

 下記のリンク先からダウンロードしてください(リンク先は、すべてMarch 2006と呼ばれるWindows 2003 Server R2対応版です)。

 環境などに合わせて、いずれかのものでインストールしてください。MSDNサブスクリプションに加入している場合はディスクメディアとして送付されてくるため、わざわざダウンロードする必要はありません。

 インストールはフルインストールをお勧めします。環境変数の設定はオプションですが、インストーラ作成作業の大半はコマンドラインでの作業なので、設定しておくとよいでしょう。また、Visual Studio 2005(Expressを含む)を利用している場合は、必ず統合作業を行なってください(2003までの場合も統合をお勧めします)。Visual Studio 2005にはx86版の「msi.lib」が含まれていませんので、必ず行なう必要があります(これ自体は実装漏れのようですが……)。このライブラリがないと、Windows InstallerのAPIが利用できません。統合方法の詳細は、『Visual Studio 2005/Visual C++ 2005 Express EditionにPlatformSDKを統合する(改訂版) 』にありますので、参考にしてください。

 SDKをインストールしたら、Orcaもインストールします。OrcaはSDKにインストーラとして含まれるのみとなっています。そのため、別途インストールする必要がありますので、インストール先の「Bin」ディレクトリにある「Orca.msi」を実行してインストールしてください。以上で統合作業は終了です。

 これで基本的なWindows Installer用開発環境の構築は完了しました。

Orcaとは
 Windows Installerデータベースエディタとして、多くのインストーラ開発者に愛用されているGUIエディタです。画面GUIはデータベーステーブルの基本参照機能(グリッド形式)しか持っていませんが、インストーラ開発を行なう上で必要となるすべての機能を有しており、これさえあれば、フルスクラッチでインストーラを作成することも不可能ではないという代物です(だからといって、Orcaだけでインストーラを作成することはお勧めできません)。主な利用方法としては、出来上がったmsiやmsm(マージモジュール:今回の連載では作成しません)の検証を行なったり、作成したパッチ(msp)をオリジナルのmsiに一時的に適用して、問題点を探ったりということもできるようになっています。基本的な使い方の一部は連載中でも紹介いたしますが、英語とはいえしっかりしたヘルプもついていますので、ぜひご自身で研究してみてください。

WiXのダウンロードとインストール

 ポータルサイト「Windows Installer XML(WiX) toolset」の右側から2.0のリンクをたどり、最新版をダウンロードします(ダウンロードのページはこちら)。バージョンごとに、バイナリとソースのZIPファイルと「Votive.msi」が用意されているので(2.0の場合)、バイナリとソースの両方をダウンロードしておいてください(Votiveは今回、直接利用しません)。なお、執筆時点での最新版に当たる2.0.4103.0を利用して、解説を行います。

 なお、本連載では、バイナリが「C:\WiX」に、ソースが「C:\WiX\2.0.4103.0\」に展開されていることを想定しています。コマンドラインツールのため、実行パスをきっておくと、より手軽に利用できるようになるでしょう。

Windows Installer XML(WiX) toolsetとは
 Windows Installer XML(WiX) toolset は、Windows Installerデータベース(msi/msm/pcp)を作成するための開発ツールです。
 マイクロソフト初のopen sourceプロジェクトとして、2004/04/05にSourceForge.netにて一般公開されました。当時日本の技術系ニュースサイトや、いろいろなBlogで触れられていたので知っている方も多いかと思います。英語版しかないという制限はありますが(ツール自身が英語版というだけで日本語版インストーラの作成は可能)、ライセンス形式が CPL(Common Public License Version 1.0) となっているため、利用時の制約事項がほとんどないことから、最近では著名な市販ソフトでも利用されるようになってきています。
 WiXは、InstallShieldやVSセットアップ(VS 2002より同梱されたセットアップビルド機能)などと同様、Windows Installerデータベース作成のために用意された開発ツールではありますが、他のツールと違いコードベースによる開発スタイルをとっています。
 InstallShieldに代表される市販ツールやVSセットアップは、開発作業をGUIで行っており、GUIの特性を生かすことで非常に簡単に新規インストーラを構築できるようになっています。その代わり、GUIであるがゆえに、検索や複数種類の情報の参照などはあまり効率よく行なうことができません。データ管理にしても一つのファイルで管理されているため(管理形式はツールによって異なります)、単一の製品で完結している分には問題点は出てきませんが、複数のバリエーション管理を行なうなどとなると、とたんに手間が増えるという欠点もあります。
 これに対し、WiXでの開発はテキストベースのソースコードを記述していくというスタイルをとっているため、検索が容易というばかりではなく、Windows Installerが本来持つ論理的な構造に基づいて構成されていることにより、目で追える範囲にデータがまとまりやすいという、うれしい副作用もあります。また、ビルドスタイルも前史時代より連綿と続く伝統的なCompile&Linkという形式をとっていますので、C/C++ の開発者にとってはおなじみのスタイルとも言えるでしょう。
 もちろん、このプログラミングモデルの特性を生かすために、プリプロセッサを搭載していたり、分割コンパイルができるようになっているなど、他のインストーラ作成ツールとは明らかに違う特性を持っています。この分割コンパイルやプリプロセッサ機能をうまく活用することで、体験版と通常版、機能限定版とフルセット版などのバリエーション管理をかなり強力、かつ容易に行なうことができます。また、リンク時にはライブラリも指定できるようになっているため、うまくライブラリ化を進めることで、既に使いまわされた枯れたコードを再利用できるなどのメリットもあります。特に、ユーザーインターフェイス部分はほとんどの場合、メーカーごとに固有のスタイルをとっていることが多く、その内容も製品ごとに変わることがほとんどないため、この部分は非常に強力に働かせることができると思います。
 現在は安定版とされる2.0と、新バージョンの3.0が並行で開発されています。2.0は実質的にメンテナンスフェーズへと移行しており、今後大幅な変更(仕様変更)は入ることはないと思われます。

 長くなってしまいましたが、前置きはこれくらいにして連載本編へと入りましょう。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
最小インストーラを作成する

修正履歴

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
WiXではじめるWindows Installer作成入門連載記事一覧

もっと読む

この記事の著者

とっちゃん(トッチャン)

Microsoft MVP for Development Tools Visual C++Windows Installer 系を中心にオンライン/オフラインで活動しています。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/428 2006/08/25 19:17

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング