Upgrade テーブル
Upgrade テーブルには、メジャー アップグレード中に必要な情報が含まれています。 インストーラーのアップグレード機能を完全に有効にするには、すべてのパッケージに UpgradeCode プロパティと Upgrade テーブルが必要です。 アップグレード テーブルの各レコードには、アップグレードの影響を受ける製品のセットを識別するために使用されるアップグレード コード、製品バージョン、および言語情報の特性の組み合わせが表示されます。 FindRelatedProducts アクションは、システムにインストールされている影響を受ける製品を検出すると、ActionProperty 列で指定されたプロパティに製品コードを追加します。 RemoveExistingProducts アクションと MigrateFeatureStates アクションは、ActionProperty 列に一覧表示されている製品のみを削除または移行します。
Upgrade テーブルには、次の表に示されている列が含まれています。
Column | 種類 | キー | Nullable |
---|---|---|---|
UpgradeCode | GUID | Y | N |
VersionMin | テキスト | Y | Y |
VersionMax | テキスト | Y | Y |
Language | テキスト | Y | Y |
属性 | 整数 | Y | N |
[削除] | Formatted | N | Y |
ActionProperty | Identifier | N | N |
[列]
-
UpgradeCode
-
この列の UpgradeCode プロパティは、FindRelatedProducts アクションによって検出されるすべての製品のアップグレード コードを指定します。
-
VersionMin
-
FindRelatedProducts によって検出された製品バージョンの範囲の下限。 VersionMin を範囲に含めるには、Attributes に「msidbUpgradeAttributesVersionMinInclusive」と入力します。 VersionMin が空の文字列 ("") と等しい場合は、0 と同じように評価されます。 VersionMin が null の場合、FindRelatedProducts は msidbUpgradeAttributesVersionMinInclusive を無視し、以前のすべてのバージョンを検出します。 VersionMin と VersionMax の両方を null にすることはできません。
VersionMin は、ProductVersion プロパティの説明に従って有効な製品バージョンである必要があります。 Windows インストーラーでは、製品バージョンの最初の 3 つのフィールドのみが使用されることに注意してください。 製品バージョンに 4 番目のフィールドを含める場合、インストーラーは 4 番目のフィールドを無視します。
-
VersionMax
-
FindRelatedProducts アクションによって検出された製品バージョンの範囲の上限。 VersionMax を範囲に含めるには、Attributes に「msidbUpgradeAttributesVersionMaxInclusive」と入力します。 VersionMax が空の文字列 ("") と等しい場合は、0 と同じように評価されます。 VersionMax が null の場合、FindRelatedProducts は msidbUpgradeAttributesVersionMaxInclusive を無視し、VersionMin と msidbUpgradeAttributesVersionMinInclusive で指定された下限を超える (またはそれ以上の) すべての製品バージョンを検出します。 VersionMin と VersionMax の両方を null にすることはできません。
VersionMax は、ProductVersion プロパティの説明に従って有効な製品バージョンである必要があります。 Windows インストーラーでは、製品バージョンの最初の 3 つのフィールドのみが使用されることに注意してください。 製品バージョンに 4 番目のフィールドを含める場合、インストーラーは 4 番目のフィールドを無視します。
-
Language
-
FindRelatedProducts によって検出された言語のセット。 数値言語識別子 (LANGID) の一覧をコンマで区切って入力します。 Attributes に「msidbUpgradeAttributesLanguagesExclusive」と入力して、Language に記載されているものを除くすべての言語を検出します。 Language が null または空の文字列 ("") の場合、FindRelatedProducts は msidbUpgradeAttributesLanguagesExclusive を無視し、すべての言語を検出します。
-
Attributes
-
この列には、Upgrade テーブルの属性を指定するビット フラグが含まれています。
ビット フラグ名 Decimal 16 進数 属性 msidbUpgradeAttributesMigrateFeatures 1 0x001 MigrateFeatureStates アクションでロジックを有効にして、機能の状態を移行します。 msidbUpgradeAttributesOnlyDetect 2 0x002 製品とアプリケーションを検出しますが、削除は行いません。 msidbUpgradeAttributesIgnoreRemoveFailure 4 0x004 製品またはアプリケーションの削除に失敗した場合にインストールを続行します。 msidbUpgradeAttributesVersionMinInclusive 256 0x100 VersionMin の値を含むバージョンの範囲を検出します。 msidbUpgradeAttributesVersionMaxInclusive 512 0x200 VersionMax の値を含むバージョンの範囲を検出します。 msidbUpgradeAttributesLanguagesExclusive 1024 0x400 Language 列に一覧表示されている言語を除く、すべての言語を検出します。 -
Remove
-
インストーラーは、この列で指定された機能に REMOVE プロパティを設定します。 削除する機能は、実行時に決定できます。 このフィールドに入力された Formatted は、機能名のコンマ区切りリストとして評価される必要があります。 例: [Feature1],[Feature2],[Feature3]。 フィールドに空の文字列 ("") と評価される書式設定されたテキストが含まれている場合、機能は削除されません。 インストーラーは、Remove フィールドが空の場合にのみ REMOVE=ALL を設定します。 空の文字列と空のフィールドの違いに注意してください。 フィールドが空の場合は null になります。
-
ActionProperty
-
FindRelatedProducts アクションは、システムにインストールされている関連製品を検出すると、このフィールドで指定されたプロパティに製品コードを追加します。 この列で指定するプロパティはパブリック プロパティである必要があり、パッケージ作成者はそのプロパティを SecureCustomProperties プロパティに追加する必要があります。 Upgrade テーブルの各行には、一意の ActionProperty 値が必要です。 FindRelatedProducts の後、このプロパティの値は、システムで検出されたセミコロン (;) で区切られた製品コードの一覧です。
検証