[msi]アドバタイズ機能 の記事はいかがだっただろう?今回は同じような仕組みである修復機能の話だ。
Windows Installer は修復の仕組みを複数用意している。
1つ目は、WindowsInstaller以外でも実現可能な方法でもある、コントロールパネルの「プログラムの追加と削除(ARP:Add or Remove Programsの略)」から行う修復だ。こちらはユーザーが能動的に実行するという点ではほかの修復機能とは異なるが、インストーラエンジンを選ばないという利点がある。具体的な修復方法などはインストーラエンジンごとに違うので割愛するが、この機能そのものは初期のInstallShieldから存在しているポピュラーな機能なので、見かけたことがある人も多いだろう。
2つ目は、プログラムによる修復インストールだ。プログラムから呼び出すため、WindowsInstallerのように明確なインターフェースを用意しているものじゃなければ実現できないので、あまり対応しているソフトは多くないかもしれない。こちらは、簡易ではあるが具体的な方法が記述されているので Installing a Missing Component を見ておくとよいだろう。それとこの仕組みは「手動でアドバタイズ機能を行う」のとほぼ同義であるということも覚えておいてほしい。
そして、3つ目が自動修復機能だ。これはWindowsにビルトインされているから実現できる仕組みなのだが、実際はアドバタイズ機能の単なる副産物でしかない。アドバタイズのトリガーが2と同じようなことを行うため、結果として修復されてしまうということに過ぎない。自動修復がよくわからないという人は、アプリケーションの復元- Windows インストーラの隠れた機能を明らかにする を読んでほしい。
なお、1の機能もOSのサポートであるともいえる。インターフェース的にはプロセス呼び出しに相当するため、WindowsInstaller 以外でも利用できてはいるが。
このような、Windowsにビルトインされているから実現できるという仕組みはほかにもまだまだ存在する。次回以降も少しずつ紹介していきたい。