Share via


UpgradeCode を使用する

UpgradeCode は主にメジャー アップグレードをサポートするために使われますが、小規模およびマイナーなアップグレード パッチで製品の検証に UpgradeCode を使用できます。 メジャー アップグレードの間に、FindRelatedProductsMigrateFeatureStatesRemoveExistingProducts アクションは、以前のバージョンの製品を検出、移行、削除します。 FindRelatedProducts アクションは、UpgradeCodeProductLanguageProductVersion に基づく条件を使って、製品を検索します。 これらの条件は、Upgrade テーブルで指定されています。

FindRelatedProducts アクションで使われる条件では、UpgradeCode は 1 つの製品のさまざまな言語とバージョンで同じにすることができます。 これは、Upgrade テーブルを使う、バージョンと言語の行で製品を区別できるためです。

同じ製品の異なるバージョン間で、UpgradeCode を変更する必要がない場合があります。 各スタンドアロン製品には、独自の UpgradeCode が必要です。 製品スイートにも、独自の UpgradeCode が必要です。 これにより、スイートは、Upgrade テーブルの複数の行を使って、スイートまたはスタンドアロン製品の以前のバージョンをアップグレードできます。

次の 2 つのシナリオでは、UpgradeCode の使用方法を示します。

  • 製品 A と製品 B は、同じ ProductLanguageProductVersionUpgradeCode で出荷されました。 製品 A と製品 B の ProductCode は異なります。 製品には同じ UpgradeCode が割り当てられているため、Upgrade テーブルを作成して、古いバージョンの製品 A と古いバージョンの製品 B を区別することはできません。この場合、製品 B を無視する製品 A のアップグレード インストールを作成できません。これらは異なる製品であるため、それぞれに異なる UpgradeCode が割り当てられている必要があります。
  • 製品 A の英語版とフランス語版は、同じ ProductVersionUpgradeCode で出荷されました。 製品 A の英語版とフランス語版の ProductLanguageProductCode は異なります。 英語版とフランス語版は同じ UpgradeCode を共有していますが、以前の英語版のみが検出されてアップグレードされ、以前のフランス語版は無視されるように、Upgrade テーブルを作成できます。 製品の異なる言語バージョンでは、同じ UpgradeCode を使用できます。