アプリケーションをコンポーネント別に整理する

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

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

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

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