環境:Vitual Studio 2005 Pro
VSのセットアッププロジェクトでマイナーバージョンアップ用アップデートインストーラを作る方法です。
バグの修正等でマイナーバージョンアップする場合、ユーザが現行バージョンを明示的にアンインストールすることなく、アップデート用インストーラが旧バージョンを削除し、新バージョンをインストールするというほうがユーザには優しいでしょう。
もちろん、新規インストール時にも使えるようにする必要もあります。つまり、新規・アップデート兼用インストーラです。
(メージャーバージョンアップの場合はアップグレードになるので、また話が違ってくると思いますが。)
セットアッププロジェクトでちゃんと設定しないと下記のように「別のバージョンの製品が既にインストールされています。」とエラーになったりします。
いろいろ試した結果下記のような設定だとうまくいきました。
セットアッププロジェクトのプロパティを下記のようにします。
RemovePreviousVersions を True にする。これは旧バージョンをインストーラで削除するプロパティらしいです。
UpgradeCode は変更しない。(前バージョンと同じコードにする)
ProductCode は新しいコードに変更する。(Versionプロパティを変更するとProductCodeも変更するかVSが聞いてきます)
Version をインクリメントする。
このインストーラでアップデートするとき、インストールフォルダを変更すると、前のインストールフォルダは本来消えないといけないのですが、カスタム動作するようにしてると、やはり *.InstallState ファイルは残ってしまいます。
( *.InstallState が残る件はVisual Studioセットアッププロジェクトのカスタム動作を参照。)
なお、すでにインストールされているバージョンより古いバージョンを入れようとすると下記のメッセージが表示されます。