メジャー アップグレード

メジャー アップグレードは、ProductCode プロパティの変更を必要とする製品の包括的な更新です。

一般的なメジャー アップグレードではアプリケーションの以前のバージョンが削除され、新しいバージョンがインストールされます。 メジャー アップグレードでは、機能コンポーネント ツリーを再編成できます。 詳細については、ProductCodeに関するページと「製品コードの変更」のページを参照してください。

Windows インストーラーを使用したメジャー アップグレード中、インストーラーは、保留中のアップグレードに関連するアプリケーションをユーザーのコンピューターで検索し、検出したら、インストールされているアプリケーションのバージョンをシステム レジストリから取得します。 その後、インストーラーはアップグレード データベースの情報を使用して、インストールされているアプリケーションをアップグレードするかどうかを判断します。

インストーラーのアップグレード機能を有効にするには、すべてのパッケージに UpgradeCode プロパティと Upgrade テーブルが必要です。 各スタンドアロン製品または製品スイートには、独自の UpgradeCode が必要です。 UpgradeCode プロパティの使い方について詳しくは、「UpgradeCode の使用」セクションをご覧ください。 Upgrade テーブルの各レコードには、アップグレードの影響を受ける製品のセットを識別するために使用されるアップグレード コード、製品バージョン、言語情報の組み合わせが表示されます。 FindRelatedProducts アクションにより、影響を受ける製品がシステムにインストールされていることが検出されると、Upgrade テーブルの ActionProperty 列にあるプロパティに製品コードが追加されます。 RemoveExistingProducts アクションMigrateFeatureStates アクションにより、ActionProperty リストに表示されている製品が削除または移行されます。 パッケージ作成者は、トピック「今後のメジャー アップグレードのためのアプリケーションの準備」で説明されている手順に従うこともできます。

Windows インストーラーのアップグレード パッケージは、ユーザーが既に新しいバージョンのアプリケーションをインストールしている場合に、メジャー アップグレードがインストールされないように作成できます。 より新しいバージョン上にインストールしないようにパッケージを作成する方法の詳細については、「古いパッケージが新しいバージョンにインストールされないようにする」を参照してください

Note

Windows インストーラーでは、製品バージョンの最初の 3 つのフィールドのみが使用されることにご注意ください。 これらのフィールドの説明については、「ProductVersion プロパティ」を参照してください。 製品バージョンに 4 つ目のフィールドが含まれている場合、インストーラーでは 4 つ目のフィールドが無視されます。

 

更新された製品の完全なパッケージをインストールしてメジャー アップグレードを適用することを推奨する方法です。 製品をインストールしてメジャー アップグレードを適用する方法の詳細については、「製品をインストールしてメジャー アップグレードを適用する」を参照してください。

製品のパッチ パッケージとして適用されるメジャー アップグレードは、他の更新プログラムの順序に含めることはできません。また、アンインストールできるパッチではありません。 Windows インストーラー パッケージにメジャー アップグレード パッチ パッケージを適用する方法については、「製品のローカル インストールにパッチを適用してメジャー アップグレードを適用する」を参照してください。 パッチ パッケージを使用したメジャー アップグレードの適用は推奨されません。代わりに、製品全体をインストールしてメジャー アップグレードを適用してください。

Note

アプリケーションがユーザーごとのインストール コンテキストにインストールされている場合は、アプリケーションへのメジャー アップグレードもユーザーごとのコンテキストを使用して実行する必要があります。 アプリケーションがマシンごとのインストール コンテキストにインストールされている場合は、アプリケーションへのメジャー アップグレードもマシンごとのコンテキストを使用して実行する必要があります。 Windows インストーラーは、インストール コンテキスト間でメジャー アップグレードをインストールしません。

 

InstallValidate の後に順序付けられたカスタム アクションを条件として、UPGRADINGPRODUCTCODE プロパティを使用してメジャー アップグレードを処理できます。

  • 製品のアンインストール中にカスタム アクションを実行するが、メジャー アップグレードによる製品の削除時には実行しない場合は、次の条件を使用してください。

    REMOVE="ALL" AND NOT UPGRADINGPRODUCTCODE

  • メジャー アップグレード中にのみカスタム アクションを実行する場合は、次の条件を使用します。

    UPGRADINGPRODUCTCODE