MSTファイルについて
MSPファイルなどを【MSX2CAB】にかけると、拡張子.mstのファイルが抽出されることがあります。これはTransformと呼ばれる、修正インストール用のファイルです。
Windowsインストーラでは、MSIファイルがインストーラとして中心的な役割を果たします。このとき、バージョンアップで一部だけ手直ししたとか、会社の部署別に一部アレンジを変えつつインストールしたいとか、多言語版のフルインストーラーを用意しておいてユーザー言語別でインストールしたいなどの理由で、修正インストールをかけたいという場合があります。そのとき一からMSIを作り直しても良いのですが、効率を考えてパッチファイルのようなものを作ることもできます。修正の方法は大きく2つに分けられます。
2の場合に用いられるのがMSTファイルです。
msiexec /iPackageTRANSFORMS=TransformList
パラメータ
|
たとえば、MSIが多言語版のMultiLanguage.msiで、MSTが英語版として1033.mst、日本語版として1041.mstだとしたら、
msiexec /i MultiLanguage.msi TRANSFORMS=1033.mst
とすれば、英語版がインストールされ、
msiexec /i MultiLanguage.msi TRANSFORMS=1041.mst
とすれば、日本語版がインストールされるというような使い方をするわけです。
さて、MSTがファイルとして抽出されたとしても、これがどんなものなのかを調べるにはどうしたらよいのでしょうか。テキストエディタで開いてみても駄目ですし、バイナリエディタで開いても、いまいち有益な情報は得られません。
MicrosoftはOfficeのリソースキットのなかに、MST File Viewer を用意しています。これを使えば、MSTがどの部分に変更を加えるのかがテキストファイルで示されます。
上図はMST File Viewerの画面です。見てお分かりのように、MSTを調べるためには元になるMSIファイルも指定することが必要です。いわゆる差分ファイルみたいなものですから、基準となるものがないと意味が分からないということなのでしょう。
しかし MST File Viewerは、結果を地味にテキストファイルで示すのみで、わざわざインストールしてもイマイチという感じがします。もちろんここを読んでいるような方は、Office
リソース キットのツールセットを丸ごとインストールせずに、MSTVIEW.EXEを抜き出して実行するのでしょうが、単体で実行してもこのファイルはレジストリに記録を残します。
(HKEY_CURRENT_USER\Software\VB and VBA Program Settings\Windows Installer
Transform Viewer)
気になる人は、不要になったら消してください。
OrcaにもMSTを確認する機能があります。こちらは多少グラフィックな感じです。
まず、元になるMSIをOrcaで開いておきます。そして、メニューから「Apply Transform...」を選びます。(ちなみに、MSTではなくMSPファイルの変更点を調べたい時は「View Patch...」を選びます。)
すると、オープンファイルダイアログが表示されるので、MSTファイルを選びます。
元の画面に戻りますが、変化のあるところに、緑色で印が付きます。
詳しいことは、(英語ですが)Orcaのヘルプをご覧下さい。自分で変更点を作って、MSTファイルを作ったりもできます。