技術解説
DLL Hellを解消する新しいWindowsインストーラとアセンブリ

コラム:Windows Installerの概要

Peter Pawlak
2003/03/13
Copyright(C) 2003, Redmond Communications Inc. and Mediaselect Inc.

 Windows Installerはインストール・エンジンのほか、アプリケーション・ファイルを格納したコンポーネントやインストール方法に関する具体的な命令を格納したコンポーネントなどで構成される。

Windows Installerのサービス

 Windows Installerエンジンは、インストールに関連するほとんどすべてのタスクを実行するバックグラウンド・サービスだ。例えば、ハードディスクへのファイルのコピー、レジストリの修正、メニュー・ショートカットやデスクトップ・ショートカットの作成、ユーザーとのやりとりなどが含まれる。Windows Installerがサポートしていない操作がある場合、インストールの一部を別のセットアップ・プロセスに引き渡すことができる。

 Windows Installerサービスはシステム特権で動作するため、ローカル・システムに完全にアクセスできる。ただしデフォルトでは、こうした高度な特権を利用するのは、グループポリシー・ベースのソフト割り当てにより配布されたアプリケーションをインストールする場合か、Systems Management Server(SMS)クライアントなどのローカル・ソフト配布エージェントによって指示された場合のみとなる。それ以外は、セットアップを起動したユーザーの特権レベルで実行する。これにより、通常のユーザーが管理コンピュータにアプリケーションをインストールすることを防止できる。

Installerパッケージ

 Installerパッケージは、.msi拡張子を持つファイルと圧縮されたキャビネット(CAB)ファイルで構成される(CABファイルはオプション)。MSIファイルはWindows Installerサービスにプログラムのインストール(あるいはアンインストール)方法を伝えるために必要な、あらゆる規則とデータを格納したデータベースだ。

 パッケージには、実際のアプリケーション・ファイルを含めることもできるが、そうしたファイルを含む外部の.cabファイルへのポインタのみを含めることもできる。どちらにするかはパッケージの作成者次第だが、後者の場合、「どれか1つの.cabファイルでコードが変更されても、アップデートでほかの.cabファイルまで再配布する必要がない」という大きなメリットがある。

 アプリケーションのセットアップ・プログラムは、想定したバージョンのWindows Installerを搭載していないWindowsでも動作しなければならない。そのため、大部分のアプリケーションにはsetup.exeが用意され、適切なバージョンのWindows Installerサービスの存在を確認したうえで、必要に応じてインストールできるようになっている。その後、Windows Installerサービスが起動し、MSIファイルの処理を実行する。

Transform

 Transformは、あらかじめ決められたオプション・セットでパッケージのインストールと設定を実行できるようにするためのもので、SMSなどのツールで自動インストールを行う場合や、Windowsのグループポリシー・ベースのソフト配布機能を使ってインストールを実行する場合などに特に有効だ。

 Transformは、Windows InstallerサービスがMSIテーブルをメモリにロードした直後にパッケージのデータベースに適用される変更を含むファイルだ(拡張子は.mst)。

 Transformファイルを使えば、管理者はパッケージの指示を調整して、インストールの個別のニーズに対応できる(特定の部門には特殊な設定を適用するなど)。管理者や開発者は、VS.NETやInstallShieldといったWindows Installerオーサリング・ツールを使ってTransformを作成できる。またMicrosoftは一部のアプリケーションで、Transformファイルの作成を支援するウィザードを提供している(例えば、Office Resource KitではOfficeのインストールを微調整するためのウィザードが提供されている)。

パッチ

 ここでいうパッチとは、アプリケーションをオリジナルのMSI情報を使って更新したり、アップグレードする作業を示す。

 Windows Installerパッチ・パッケージ(拡張子は.msp)はMSIよりもシンプルで、どちらかといえばTransformに近い。パッチはオリジナルのMSIデータベースの特定のエントリを修正し、パッケージには、それに伴って変更が必要となるファイルが含まれる。


 INDEX
  [技術解説]DLL Hellを解消する新しいWindowsインストーラとアセンブリ
    1.クライアント・ソフトウェアのインストールに関わる問題
    2.Windows Installer 2.0の新機能
    3.新しいサイド・バイ・サイド・コンポーネントのサポート
      コラム:アプリケーションのインストール時に何が起きているか?
      コラム:インストール技術の改善の歴史
    コラム:Windows Installerの概要
      コラム:.NETとWin32のサイド・バイ・サイド共有コンポーネント
 
 技術解説
Windows Server Insider フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

スキルアップ/キャリアアップ

.NET管理者虎の巻

- PR -
- PR -