パッチ形式のアップグレードインストーラの作成時に、パッチの対象バージョンとなる製品を指定する方法についてです。
対象製品:InstallShield 12 以降
対象プロジェクト:基本の MSI, InstallScript MSI
[概要]
InstallShield にてパッチ形式のアップグレードインストーラを作成する場合、パッチの対象となる旧バージョンの製品を
明確に指定する必要があります。 旧バージョンの指定方法としては以下の二つの方法があります。
A. 旧バージョンのMSIを個別に指定する方法
[パッチのデザイン]ビューにて、パッチの適用対象となる旧バージョンの MSI ファイルをそれぞれ別途指定する
方法となります。複数のバージョンをターゲットにしたパッチを作成する場合の一般的な方法です。
この方法の場合、パッチは内部的にそれぞれの旧バージョンに対する差分を格納するため、指定したすべてのバージョンに
対してパッチの適用が可能になります。
例: 以下の構成のインストーラにて、最新版のSP3(Version 1.3)のパッチを作成
RTM:Version 1.0
SP1:Version 1.1
SP2:Version 1.2
SP3:Version 1.3
SP3(Version 1.3) のパッチを作成する際に、対象として RTM,SP1,SP2 をそれぞれ指定します。 各バージョンに対する差分がパッチに
格納されるため、RTMバージョン以降の各バージョン( SP1,SP2 ) に対してもパッチの適用が可能です。
B. MinorUpdateTargetRTM プロパティを使用する方法
MinorUpdateTargetRTM プロパティを使用した場合、パッチには指定した特定の旧バージョンとの差分のみの情報が
格納されます。パッチの適用対象とされる旧バージョンに対して、既に別のパッチが適用されている場合、適用されている既存の
パッチをすべてアンインストールしてから、最新のパッチが適用される動作となります。
例: 以下の構成のインストーラにて、最新版のSP3(Version 1.3)のパッチを作成
RTM:Version 1.0
SP1:Version 1.1
SP2:Version 1.2
SP3:Version 1.3
SP3(Version 1.3) のパッチを作成する際に、RTM(Version1.0)のみを適用対象として指定します。SP1,SP2 が既に適用されている環境
では、それらのパッチをアンインストールしてから、最新版 SP3 のインストールを行う動作となります。
※ B.の構成の場合、実行時の動作がシンプルになるため、複数世代をサポートするパッチ間の整合性が取れなくなって
しまったケース(実行時にエラーが発生してしまう) 等でも有効な構成方法となります。
各設定の比較
旧バージョンのMSIを指定する |
MinorUpdateTargetRTM |
|
要件 | Windows Installer 3.0 以降 | Windows Installer 3.1 以降 |
メリット | パッチ適用時の時間が短縮できる | パッチ自体のサイズを最小化できる |
デメリット | パッチ自体のサイズが大きくなる | パッチ適用時の時間が増大する |
[設定方法]
A. 旧バージョンのMSIを個別に指定する方法
FAQ 「ID01559: パッチ (Update.exe)の作成方法」 のダウンロード資料を参照
B. MinorUpdateTargetRTM プロパティを使用する方法
1. [メディア]-[パッチのデザイン]ビューにて、パッチのエントリ(PatchConfiguration1 等)を選択します
2. 右のビューにて[詳細]タブを選択します
3. [ランタイム設定]-[MinorUpdate TargetRTM プロパティ]を「はい」に設定します
4. 以前のバージョンとして指定する MSI ファイルは特定の RTM バージョン(メジャーバージョン)に固定する
[備考]
参考 URL
Cumulative Service Packs with MinorUpdateTargetRTM