2006-10-27

Windowsインストーラ  [by miyachi]

先日公開開始したLe-XAdESを使ったXAdEStoolに関して先日インストーラを付けました。XAdEStool自体に必要なセットアップがある訳ではありませんが、必要とするMSのコンポーネント(.Net Framework 2.0/VC++ランタイム他)を手動ですると面倒であったのでこれらが自動インストールできるのが判ったので取り急ぎ対応したと言う事です。

公開ページにもありますが、Le-XAdES/XAdEStoolは、Visual Studio 2005 C++ で開発しています。Windows標準の「Windows Installer」を使うなら使っているソリューションに新たにセットアッププロジェクトを追加するだけでインストーラが出来てしまいます。更に「必須コンポーネント」を追加して.Net Framework 2.0/VC++ランタイム他を自動ダウンロードと自動インストールさせる事も可能です。なかなか便利になりましたね。

ただし出力されるのは1つのファイルでは無く複数のファイルになります。CDに格納してインストールするだけならこれで充分ですが、ダウンロード用に1つのファイルにまとめたいので調べてみました。昔なら InstallShield を買えば良いと言う事になりますが、今はどうなっているのかなと。

調べてみるとWindows2000以降では「IExpress」と言うツールが標準で提供されているようです。これで複数のファイルを1つにまとめて自己解凍してインストーラを起動する事が出来るようです。素晴らしい!早速使ってみると確かに簡単に使えます。これなら InstallShield 無くても良いのかな?と思ったら1つ落とし穴がありました。

Visual Studio 2005 で作成されたインストールキットにはフォルダが含まれていました。一方 IExpress ではフォルダを含んでいる場合には使えません。駄目じゃん…orz さすがMSだけあって使えそうで微妙に使えませんでした(笑) IExpress が階層フォルダに対応してさえくれれば良いのですが。

無い物ねだりしても仕方がありません。無い物は作るか買ってくるしかありません。まあ書庫化してインストーラ(setup.exe)をキックするだけなら作っても簡単そうです。近いうちに IExpress の代わりになる物を自作する事にして、XAdEStool はとりあえず単にZIPでまとめて公開しました。書庫化ツールが出来たら自己解凍方式に切り替える予定です。

ちなみに Visual Studio のセットアッププロジェクトの使い方はここが簡単で便利でした。IExpress に関してはこちらの記事あたりを参考にしてみました。
2006-10-27 16:58:12 - miyachi - - [プログラミング] -