2000年5月19日 メールはこのアドレスへお願いします


(1) はじめに
(2)
インストール
(3) データベース編集ツール Orca
(4) GUID(Global Unique IDentification)
(5) メッセージの日本語化
(6) サンプルの採取
(7) 方針変更
(8) サンプルアーカイブ
(9) メモ
(10) Makecab.exe

(1) はじめに

 今までは

『ソフトウェアをセットアップするのは OS の仕事ではありません』

というのが一般的でした。そのため Install Shield などど言った,セットアップ専用のソフトを採用しているケースが一般的でした。

 しかし,そのために C:\Windows\System などの,システムの根幹部分のファイルを書き換えてしまう「行儀の悪い」セットアッププログラムも存在したため OS の動作が不安定(もしくは別のソフトが起動しなくなる)になるケースも発生していました。
 こうしたことの解決策として OS 自身がソフトのインストールを受け持とうという考え方が出てきました。そのための開発ツールが Windows Installer です。Windows Installer は http://msdn.microsoft.com/downloads/sdks/platform/wininst.asp で無料で配布されています。

先頭に戻る UNIQUE LABORATORY に戻る


(2) インストール

 Windows Installer 開発ツールをインストールするには Windows Installer が必要です。Office 2000 をインストールしている人は既に Windows Installer がインストールされていますが,そうでない方はまず

・Download the Windows Installer redistributable

の方から Windows Installer 本体( InstMsi.exe )をダウンロードして,セットアップして下さい。次に

・Download the Windows Installer samples, tools and documentation ( IntelSDK.msi,8MB )

をダウンロードして下さい。IntelSDK.msi を右クリックすると「インストール」という項目が現れるので,選択してインストールして下さい。MsiIntel.SDK というフォルダが出来ます。

 すでに私はダウンロードして自分のパソコンにセットアップ済みです。インストーラ自身は日本語メッセージも表示は可能のようですが,Windows Installer 自体は英語版ですし,付属のヘルプファイルも英語版です。

先頭に戻る UNIQUE LABORATORY に戻る


(3) データベース編集ツール Orca 

 Windows Installer を作成するためにはデータベースを作成する必要があります。そのためのデータベース編集ツール Orca が C:\MsiIntel.SDK\Tools\Orca.msi にあります。

 Orca.msi を右クリックすると「インストール(I)」があるので選択して下さい。すると Setup Wizard が起動します(念のため常駐ソフトは終了しておきましょう)。氏名とCDキーを入力する必要があります。氏名の所に「Taro Tanaka」のように名前を入れましょう,CDキー所はデフォルトで「111-11111」となるようです。ただし,Windows2000 ではデフォルトの数字が入らないので,適当な数字を入れてみたのですが受け付けてくれず,悩みました。Windows95 でインストールしたところデフォルトの数字がセットされたのでこのことに気づきました。インストールするコンポーネントを選択できるので選択して下さい。私は「Complete」を選びました。インストールすると C:\Program Files\Orca9X というフォルダが出来ます。

 データベースをゼロから作成しても良いのですが,それでは手間がかかります。そのため雛形となるデータベースが用意されています。それが C:\MsiIntel.SDK\Database\UISample.msi です。適当なフォルダにコピーして C:\Sample\MyNotepad.msi のように名前を付け替えましょう。
 もし空のデータベースから作り始めるときは C:\MsiIntel.SDK\Database\Schema.msi を使用しましょう。

 Windows Installer を作成するということは,このデータベースを作成することに他ならないようです。Windows Installer を使うと次のようなことが出来ます。

先頭に戻る UNIQUE LABORATORY に戻る


(4) GUID(Global Unique IDentification)

 インストールするコンポーネントには「グローバル・ユニーク・ID」(全世界的な唯一の身分証明)を割り振る必要があります。このGUIDを生成するツールが「GUIDGEN.EXE」です。私は Visual C++ 4.0 の CD-ROM で発見しました。GUIDGEN.EXE を起動すると GUID を発行してくれます。引数はありません。GUIDGEN.EXE は「乱数発生器」「現在の日付と時刻」「あなたのパソコンのネットワークアドレス(ネットワークアドレスが無いときは無作為な6バイトが生成される)」などといった情報を元に,世界でただ一つの ID を生成します。

 GUIDGEN.EXE は Visual Basic の CD-ROM や Microsoft のWeb ページなどから入手出来るのではないでしょうか?(確認はしていません)。

先頭に戻る UNIQUE LABORATORY に戻る


(5) メッセージの日本語化

 エラーメッセージなどの常套句は日本語ファイルが用意されています。Orca を起動して,「Tables」「Import Tables」を選択します。Windows Installer に付属している日本語化のためのメッセージは JPN という拡張子になっているので(通常は idt)「ファイルの種類(T)」を「All files (*.*)」にします。そして「C:\MsiIntel.SDK\Database\Intl\ にある「ActionTe.JPN」と「Error.JPN」をインポートします。

先頭に戻る UNIQUE LABORATORY に戻る


(6) サンプルの採取

 ココまでやったところでサンプルが欲しいな~と思いました。なにごとに付けゼロから作り上げるというのは大変なことです。幸いなことに,あなたが天才でない限り偉大な先人がいるはずです。そういった人のサンプルが見られるのであれば,見て参考にしましょう。

 Vector に行って,キーワード「Windows Installer」,検索サイト「Yahoo」で検索すると幾つかファイルが引っかかります。適当に目星をつけて 「お知らせメーラー(Windows Installer 版)」 を持って来ました。C:\MsiIntel.SDK\Tools\Msidb.exe を起動してお知らせメーラーの「oshirase.msi」を開きます。そして適当なフォルダを選択して「Export」に黒丸を付けて,ファイルをエクスポートします。すると多くのテキストファイルとフォルダ・バイナリファイルがエクスポートされます。それでは書き出されたテキストファイルを解析していくことにしましょう。

先頭に戻る UNIQUE LABORATORY に戻る


(7) 方針変更

 お知らせメーラーの oshirase.msi を Orca で開いてみると Text のところを日本語に変えていくことで,メッセージの日本語化が実現されていることがわかります。私は持っていないので知りませんが,Office 2000 Developer などには日本語化のツールが付いているのかもしれません。

 ActionText と Error については Windows Installer に日本語化ファイルが添付されているのですが,それ以外はついていません。お知らせメーラーのテーブルを闇雲にエクスポートして,サンプルのファイルにインポートするのですが微妙な差のせいかうまくいきません。そこで Windows Insataller についている UISample.msi を日本語化することに決めました。(途中で気が付いたのですが,添付されている Schema.msi は正しく動作しませんね。なぜでしょう?)

先頭に戻る UNIQUE LABORATORY に戻る


(8) サンプルアーカイブ

 UISample.msi を日本語化してみました。英語が得意と言うわけではないので誤訳があると思います。アーカイブ内の「UISample.msi」を Orca で開いて,「Tools」「Dialog Preview」を選択すると各ダイアログがプレビュー出来ます。ただし,データは空っぽなのでインストールは出来ません。今回はあくまでダイアログを日本語化しただけです。

 エンドユーザー・ライセンスのところが暗号のようになっていますが,これはリッチテキストフォーマットです。ライセンス文を Word97 などで作って,リッチテキストフォーマットで保存します。これをテキストエディタで開いて,改行をすべて削除します。このテキストファイルを UISample.msi 内の Control の該当場所に貼り付けます。

先頭に戻る UNIQUE LABORATORY に戻る


(9) メモ

 作ったデータベースファイル NCalc.msi(UISample.msi) とキャビネットファイル(*.cab) を合体させるとインストール用の msi ファイルが出来るようです。そのために N000501.xls や ncalc.cnt,ncalc.hlp,readme.txt などをキャビネットファイルとしてまとめる必要があります。キャビネットファイルを作るツールは C:\MisIntel.SDK\Patching\Makecab.exe です。その後 Msidb.exe を使ってコマンドラインから

msidb.exe -d mydatabase.msi -a mycab.cab

と入力します。詳しくは msidb.exe /? として下さい。

先頭に戻る UNIQUE LABORATORY に戻る


(10) Makecab.exe

 お久しぶりです。Makecab.exe を使って複数のファイルをアーカイブする方法が分からず試行錯誤していました。複数ファイルをアーカイブするには,アーカイブしたいファイル名を列記した次のようなテキストファイルを適当な名前で作成します。ここでは direct.txt という名前にします。

ncalc.hlp
ncalc.cnt
readme.txt
そしてコマンドラインから次のようにすると作成出来ます。

makecab /f direct.txt

 しかし,これでは Disk1 というフォルダが自動的に作成されて,1.cab という名前のアーカイブになってしまいます。その他にも setup.inf や setup.rpt というファイルが出来てしまいます。どなたか詳しい使い方を知っている方からの情報をお待ちしております。とりあえず複数ファイルをアーカイブするという目的は達成できたので,良しとします。

先頭に戻る UNIQUE LABORATORY に戻る


先頭に戻る UNIQUE LABORATORY に戻る