コンポーネント コードの変更
インストールのためにコンポーネントを指定するとき、パッケージの作成者は、「アプリケーションをコンポーネントに整理する」で説明されているコンポーネント整理の一般的なルールに従う必要があります。 作成者は、新しいコンポーネントを導入したり、既存のコンポーネントを変更したりすることが必要な場合があります。 リソースの追加、削除、または変更によって実質的に新しいコンポーネントが作成される場合は、コンポーネント コードも変更する必要があります。
新しいコンポーネントの作成
次のいずれかの変更を行う場合は、新しいコンポーネントを導入し、一意のコンポーネント コードを割り当てます。
- コンポーネントの以前のバージョンと互換性があることがテストによって示されていない変更。 この場合は、コンポーネント内のすべてのリソースの名前またはターゲットの場所も変更する必要があります。
- コンポーネント内のファイル、レジストリ キー、ショートカット、その他のリソースの名前またはターゲットの場所の変更。 この場合は、コンポーネント内のすべてのリソースの名前またはターゲットの場所も変更する必要があります。
- ファイル、レジストリ キー、ショートカット、その他のリソースをコンポーネントに追加、またはコンポーネントから削除。 この場合は、コンポーネント内のすべてのリソースの名前またはターゲットの場所も変更する必要があります。
- 32 ビット コンポーネントを 64 ビット コンポーネントに再コンパイル。
新しいコンポーネントを導入するときは、作成者は次のいずれかの方法で、コンポーネントが既存のコンポーネントと競合しないようにする必要があります。
- 別のコンポーネントによって同じ名前で、同じターゲットの場所にインストールできるリソースの名前またはターゲットの場所を変更します。
- それ以外の場合は、名前と場所が共通するリソースを持つ別のコンポーネントと同じフォルダーに新しいコンポーネントがインストールされないことを保証します。 これには、同じファイル名を持つローカライズされたバージョンのファイルが含まれます。 詳細については、「コンポーネント ルールが壊れた場合はどうなりますか?」を参照してください。
- 既存のコンポーネントのコンポーネント コードを変更するときは、コンポーネント内のすべてのファイル、レジストリ キー、ショートカット、その他のリソースの名前またはターゲットの場所も変更します。
コンポーネントの新しいバージョンの作成
コンポーネントの新しいバージョンには、別の既存のコンポーネントと同じコンポーネント コードが割り当てられます。 コンポーネント コードを変更せずにコンポーネントを変更することは、以下の場合にのみ選択可能です。
- コンポーネントの変更は、コンポーネントの以前のバージョンのすべてと下位互換性があることがテストによって証明されている。
- コンポーネントの新しいバージョンが、コンポーネントの以前のバージョン、または以前のバージョンを要求するアプリケーションとそれが競合するシステムには決してインストールされないことを作成者が保証できる。 詳細については、「コンポーネント ルールが壊れた場合はどうなりますか?」を参照してください。
コンポーネントの新しいバージョンのコンポーネント コードを変更した結果、2 つのコンポーネントが (レジストリ値などの) リソース、ファイル、またはショートカットを共有する結果になる場合、変更してはなりません。