前回に引き続いてのSDK編です。
後半戦は使われる頻度の低いツールからいきましょう。
まずは、MsiDb.exe。こちらは、msi データベースを部分的にインポート・エクスポートするツールです。
idt という拡張子を持つタブ区切りの専用テキスト形式を用いたファイルを対象とします。
ま、実際はAPIを呼び出してるだけだったりするわけですがw
次は、Msifiler.exe。「フィルター」ではなくて「ファイラー」ですのでお間違えなく。
こいつと、ORCA があれば、msiを作ることができます。ファイルのバージョン情報を引っ張りだしてきたり、ハッシュ値を埋め込んだりするためのツールですね。これも普通は使うことはありません。
これら2つは、特殊な事情がない限りは殆ど使われることはありません。開発ツールにVSとSDK以外利用できない(インストーラも含め)という場合など以外ではまずお目にかかることはありません。
続いては、MsiMerge.exe。msi同士をニコイチするためのツールです。こちらは出来上がっているmsi にもう一つくっつけてしまうというものです。これもやはり特殊な事情がない限りはめったなことで利用されません。
この3つと、スクリプトをうまく駆使すれば、自動ビルドも可能です。今も転がってるかはわかりませんが、もしかしたら InstallSite の古い情報には埋まってるかもしれません。
後半戦の後半の一発目は、MsiTran.exe。こちらは、msi 同士の差分をとりだして変換情報(mst)を生成するツールです。WindowsInstaller は、英語版と日本語版というように複数の言語を持たせる場合、ベースのmsiにmst でデータを一部変換して日本語にするというようなことをします。
これをやるとアップデータの作成が「非常に」難しくなるのですが、計画性をもって作られていれば、アップデートで変わるところにUI関連は含まれないはずですので、あまり問題視されたことはないようです。
つぎは、MsiMsp.exe。PlatformSDK 時代は、なぜかサンプルとしてしか提供されてこなかった開発上必須のツールです。パッチ(MinorUpdateなど)を作成するための唯一のフロントエンジンです。
ちなみにこれの実際のエンジンは、PATCHWIZ.DLL です。MsiMsp.exe は単なるローダーということですね。
残り2個。ひとつは、Msicert.exe。msi にデジタル署名をつけるツールです。パッチとトランスフォーム以外は、Part1のツールで殆ど面倒見てくれるのでやっぱり使われないツールの一つですね。
最後は、Msitool.mak。なぜこれがSDKツールとして用意されているのかいまだによくわかってません。サンプルで使ってるのかな?とも思ったんですが、そうでもないみたいだし...中身はマクロの嵐でなにやってるのか読み取るのすらすげー大変...という代物だし。
とりあえず、サポート対象となっているツールはこんなところですね。次回は、サンプル扱いではあるものの、知らなきゃ損するサンプルスクリプト集を紹介します。