コンポーネントへのアプリケーションの整理

Windows インストーラーは、 コンポーネントと呼ばれる部分にアプリケーションや製品をインストールし、削除します。 コンポーネントは、ユーザーのシステムのユニットとして常にインストールまたは削除されるリソースのコレクションです。 リソースには、ファイル、レジストリキー、ショートカット、またはインストールされる可能性があるその他のものを指定できます。 すべてのコンポーネントには、一意のコンポーネントコード GUIDが割り当てられます。

インストールパッケージの作成者は、コンポーネントとコンポーネントのバージョンのみを作成する必要があります。コンポーネントは、他のコンポーネントを破壊することなくインストールおよび削除できます。 また、コンポーネントを削除しても、未使用のファイル、レジストリキー、ショートカットなど、ユーザーのコンピューター上の孤立したリソースを残さないようにする必要があります。 これを実現するには、リソースをコンポーネントにまとめるときに、作成者は次の一般的な規則に従う必要があります。

  • 同じ名前とターゲットの場所にリソースをインストールする2つのコンポーネントを作成しないでください。 リソースを複数のコンポーネントで複製する必要がある場合は、各コンポーネントの名前またはターゲットの場所を変更します。 このルールは、複数のアプリケーション、製品、製品バージョン、および企業に適用する必要があります。
  • 前の規則では、2つのコンポーネントが同じキーパスファイルを持つことはできないことに注意してください。 キーパス値は、コンポーネントを検出するためにインストーラーが使用するコンポーネントに属する特定のファイルまたはフォルダーを指します。 2つのコンポーネントのキーパスファイルが同じである場合、インストーラーはインストールされているコンポーネントを区別できません。 ただし、2つのコンポーネントがキーパスフォルダーを共有する場合があります。
  • コンポーネントの以前のバージョンと互換性のないコンポーネントのバージョンを作成しないでください。 コンポーネントは、他のアプリケーション、製品、製品バージョン、および企業で共有されている可能性があります。 代わりに、新しいコンポーネントを作成します。
  • ユーザーのシステム上の複数のディレクトリにインストールする必要があるリソースを含むコンポーネントを作成しないでください。 インストーラーによって、コンポーネント内のすべてのリソースが同じディレクトリにインストールされます。 一部のリソースをサブディレクトリにインストールすることはできません。
  • コンポーネントごとに複数の COM サーバーを含めないでください。 コンポーネントに COM サーバーが含まれている場合、これはコンポーネントのキーパスである必要があります。
  • [ スタート ] メニューまたはデスクトップショートカットのターゲットとして、コンポーネントごとに1つ以上のファイルを指定しないでください。

アプリケーションをコンポーネントに整理する場合、パッケージの作成者が既存のインストールのリソースを追加、削除、または変更することが必要になる場合があります。 この場合、作成者は、新しいコンポーネントを導入するか、既存のコンポーネントを変更してコンポーネントの新しいバージョンに変更することによって、リソースを提供するかどうかを決定する必要があります。 新しいコンポーネントを導入するときには一意のコンポーネントコードを割り当てる必要があるため、作成者は、変更によってコンポーネントコードを変更する必要があるかどうかを判断する必要があります。 詳細については、「 コンポーネントコードの変更」、「コンポーネント ルールが壊れた場合の動作」、および「 インストーラーコンポーネントの定義」を参照してください。