MSIファイルの実行本体である Windows インストーラ では、ProductVersion(製品バージョン)とProductCode(製品コード)の変更状態により、下記の3種類のアップグレードを想定しています。
さて、各アップグレードの形態について、それぞれかんたんに特徴を述べると、
Majorアップグレードはフルパッケージ(*.msi)として、Small/Minorアップグレードはフルパッケージ(*.msi)またはパッチパッケージ(*.msp)またはその両方の形式で配布されます。 Small/Minorアップグレードの場合、アップグレードした後の新規ユーザーのことを考慮し、フルパッケージを作成することになるでしょう。 パッチパッケージは、フルパッケージのファイルサイズが大きい場合で、かつ配布形態としてインターネットからのダウンロードを採用している場合に、既存ユーザーのダウンロード時間を短縮するために用意されるべきかもしれません。 しかし、多くの場合、(パッチパッケージを作成・配布するのが面倒という理由で)既存ユーザーにも、フルパッケージで配布することになるかもしれません。 フルパッケージ、パッチパッケージのいずれの場合も、アップグレードの種類によって、その実行方法が異なります。
Small UpgradeおよびMinor Upgradeの場合は、上記のようにコマンドライン引数を指定して実行することで、ファイルの差し替え、つまり上書きインストールが行われます。 実際にどのファイルが上書きされるべきかは、REINSTALLMODEプロパティの指定内容により判定されます。 指定値が"vomus"の場合、この判定基準は、下記のようになっています。
このため、以下のような注意点があります。
Major Upgradeの場合は、下位メジャーバージョンとの共存が可能であることが前提となっています。 このことから、Major Upgradeを行う際は、共存できないファイル(メインプログラムなど)について、別名を付けるようにするか、または製品名およびインストールフォルダを旧メジャーバージョンとは違うものにすべきと言えるでしょう。 別名を付けるかどうか、製品名およびインストールフォルダを分けるかどうかは、下位メジャーバージョンとの共存の有無(旧メジャーバージョンの強制削除)、下位メジャーバージョンからの設定ファイルなどの引継ぎ、データフォルダなど関連フォルダとの位置関係など、総合的に判断して決定して下さい。 なお、Major Upgradeを行う際に、旧メジャーバージョンを削除してしまいたい場合もあると思います。 その方法は、別ページ Major Upgrade にて説明をしています。 |
参考URL |
File Versioning Rules |
Replacing Existing Files |
Microsoft Windows インストーラ ツールのコマンド ライン スイッチ |