アップグレードインストーラ作成記(4)

さて、ようやく主題であるアップグレードインストーラの話に入れる。アップグレードインストーラとは、すでにインストール済みであるアプリケーションを、そのままの状態でアップグレードできるインストーラだ。当たり前のような事を書いているかも知れないが、古いバージョンのアプリケーションを認識し、重複のないように新しいアプリケーションで置き換えるにはそれなりの工夫が必要だ。

アップグレードインストーラの基本的な動作を、以下のように定義しよう。

  • 古いバージョンを探してアンインストール。
  • 新しいバージョンをインストール。

たったのこれだけだが、これだけのことのために苦難の日々が待ち受けていようとは、誰も予想できなかったはずだ。実は、これをサポートできる機能はVisual Studio Installerには備えられてない。よって、Orcaデータベースエディタのお世話にならざるを得ない。

なお、最初に断っておくが、これから書く内容ではうまくアップグレードインストーラを作成することはできなかったのである。Microsoft社のドキュメントに書いてある内容に従って実行したが、足りない部分があるようだ。最善のソリューションは、Visual Studio Installer+Orcaではない。これを最初に書いておく。

アップグレード前のインストーラファイルをOrcaで開き、以下のプロパティの値を控えておく。

  • [Property]-[ProductVersion]
  • [Property]-[UpgradeCode]

アップグレードインストーラを新規に作成する場合には、ProductVersionをアップさせる。たとえば1.0.1など。3桁目までしか判別できないから注意。さらに、UpgradeCodeを合わせる。つまり、UpgradeCodeが同じものは同類のアプリケーションとして認識させ、ProductVersionで新旧の区別などをしているわけだ。これが最低限の下地となる。

既存のインストーラをベースにアップグレードインストーラを作成する場合には、Visual Studio Installerで作業して、プロジェクトのプロパティを変更すればいい。[製品情報]タブからバージョンの項目を変更し、製品コードの項目を新規コードボタンを押して変更する。間違っても、更新用コードの方を変更しないこと。

Visual Studio Installerのヘルプでは、これだけでアップグレードインストーラを作成できるかのようなことが書いてあるが、実際はこうはいかない。もう少し、インストーラファイルをいじくる必要がありそうだ。いろいろ調査したところでは、ほかにも作業が必要なようだ。これについては長くなるので、次回に回したい。

コメント

  1. Visual Studion Installerのネットワークエラー

    製品コードが同じ場合発生する?ようなので、 プロジェクトのプロパティ>製品情報>製品コードの新規コードを押してやると解決するようです。 更新コードは押しちゃいけないので、ここを参照。 なおさん亭 http://naosan.way-nifty.com/blog/2005/06/4_a949…….