MSTファイルについて


■MSTファイルについて

MSPファイルなどを【MSX2CAB】にかけると、拡張子.mstのファイルが抽出されることがあります。これはTransformと呼ばれる、修正インストール用のファイルです。

Windowsインストーラでは、MSIファイルがインストーラとして中心的な役割を果たします。このとき、バージョンアップで一部だけ手直ししたとか、会社の部署別に一部アレンジを変えつつインストールしたいとか、多言語版のフルインストーラーを用意しておいてユーザー言語別でインストールしたいなどの理由で、修正インストールをかけたいという場合があります。そのとき一からMSIを作り直しても良いのですが、効率を考えてパッチファイルのようなものを作ることもできます。修正の方法は大きく2つに分けられます。

  1. 既にインストールされているものを、上書きインストールのような形で修正する。
  2. 新規インストールの際に、コマンドラインオプションを設定するかのように補助ファイルを指定しつつインストールする。

2の場合に用いられるのがMSTファイルです。

 msiexec /iPackageTRANSFORMS=TransformList

パラメータ

/i
製品をインストールまたは構成します。
Package
Windows インストーラ パッケージ ファイルを指定します。
TRANSFORMS=
パッケージに適用する変換 (.mst) ファイルの指定に使用するプロパティです。
TransformList
セミコロンで区切られたパスの一覧です。

たとえば、MSIが多言語版のMultiLanguage.msiで、MSTが英語版として1033.mst、日本語版として1041.mstだとしたら、
msiexec /i MultiLanguage.msi TRANSFORMS=1033.mst
とすれば、英語版がインストールされ、
msiexec /i MultiLanguage.msi TRANSFORMS=1041.mst
とすれば、日本語版がインストールされるというような使い方をするわけです。

■MSTを開く

さて、MSTがファイルとして抽出されたとしても、これがどんなものなのかを調べるにはどうしたらよいのでしょうか。テキストエディタで開いてみても駄目ですし、バイナリエディタで開いても、いまいち有益な情報は得られません。

MicrosoftはOfficeのリソースキットのなかに、MST File Viewer を用意しています。これを使えば、MSTがどの部分に変更を加えるのかがテキストファイルで示されます。

MST File Viewer

上図は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...」を選びます。)

Apply Transform...

すると、オープンファイルダイアログが表示されるので、MSTファイルを選びます。

MSTを選ぶ

元の画面に戻りますが、変化のあるところに、緑色で印が付きます。

変更点が緑色に

詳しいことは、(英語ですが)Orcaのヘルプをご覧下さい。自分で変更点を作って、MSTファイルを作ったりもできます。