Microsoft Windows Installer
マイクロソフトは、MSIデータベースの潜在的な問題を検出するInternal Consistency Evaluators (ICE) を提供している。ICEのルールはCUBファイルにまとめられている。これは必要最低限の内容のみを含むMSIファイルで、ターゲットのMSIデータベースを検証し、警告またはエラーを出力するカスタムアクションを含んでいる。ICEによる検証はPlatform SDKのツールであるOrcaとmsival2から行える。また、各種オーサリング環境に付属の検証用ツールからも行える。
ICE のルールは、例えば次のようなものである。
ICE09: システムフォルダに格納されるすべてのコンポーネントがPermanentとしてマークされているか検証する。
ICE24: 製品コード、製品バージョン、製品の言語のフォーマットが適切か検証する。
ICE33: Registryテーブルに、他のテーブル(Class, Extension, Verbなど)に格納すべきデータが含まれていないか検証する。
リリースプロセスにおいて、ICEの警告とエラーを処置することは重要なステップである。
インストール処理では、インストールに先立ってMSIパッケージのコピーがテンポラリフォルダに作成される。これは、パッケージがローカルにある場合でも行われる。
遅延実行シーケンススクリプトの実行中にエラーが発生した場合や、ユーザーの操作によって処理がキャンセルされた場合、その時点までに行われたアクションはロールバックされ、システムは元の状態に復元される。Windows Installerの標準アクションは実行時に自動的にロールバックスクリプトへの書き込みを行っており、ロールバック処理ではそのスクリプトが実行される。パッケージの作者がシステムに変更を加えるカスタムアクションを作成する場合は、対応するロールバックアクションも作成する必要がある。アンインストール用アクションにも同様にロールバック用のアクションが必要になる。このメカニズムによって、アンインストールが失敗した場合には再インストールが行われるという少し奇妙な処理が行われる。
Windows Installerは再配布が可能である。以下のサイトからダウンロードできる。
3.0 - Windows Installer 3.0 Redistributable
3.1 - Windows Installer 3.1 Redistributable (v2)
4.5 - Windows Installer 4.5 Redistributable - 日本語