インストーラーは、破損したコンポーネントを自動的に再インストールすることで、アプリケーション 回復性 を向上させることができます。 具体的には、コンポーネント テーブルの KeyPath 列に指定されたファイルまたはレジストリ キーが見つからない 場合、インストーラーはコンポーネントまたは機能を再インストールします。
ソースで機能のコンポーネントの KeyPath が破損している場合、またはデータベースでの KeyPath の作成方法にエラーが発生した場合、インストーラーは、機能のショートカットがアクティブ化されるたびに、インストール パッケージを開いて機能を再インストールしようとする可能性があります。
機能またはアプリケーションの再インストールを繰り返し試行する原因を特定するには、イベント ログで次のような 2 つのエントリを確認します。
Detection of product 'MyProduct', feature 'MyFeature' failed during
request for component 'MyComponent'
Detection of product 'MyProduct', feature 'MyFeature', component
'MyComponent' failed
最初のメッセージは、製品のパッケージのどのコンポーネントがインストールされていたかを示しています。 これは、ショートカット テーブルのComponent_列で参照されるコンポーネントです。
2 番目のメッセージには、検出に失敗しているコンポーネントが示されています。 これは、再インストールをトリガーしている KeyPath が見つからないか破損しているコンポーネントです。