msiファイルをビルドしているとちょいちょい次のダイアログを見ます。
Product Idが同じ異なるmsiファイルを実行すると起きます。 何が「異なる」と表示されるのか特定出来ていませんでした。 msiファイルのMD5みたいなハッシュか、ファイルサイズか辺りかな?と予想していました。
今日、msiファイルをビルドしなおすと発生することに気がつきました。
WiX Toolsetでいうと、wxsファイルを全く変えずにlight.exe
を使ってリンクし直すだけで発生します。
ユーザー毎コンテキストでインストールしたProductの情報はレジストリのHKEY_CURRENT_USER\SOFTWARE\Microsoft\Installer\Products
に登録されます。
例えば WiX チュートリアル 日本語訳 Lesson 1 始めよう / 3. 使用に供する のSample-1-3-Firstで作成したmsiファイルを実行すると次の情報が登録されます。
一回アンインストールします。
light.exe .\SampleFirst.wixobj
を実行し、msiファイルをつくりなおします。
あたらしいmsiファイルを使ってインストールすると、次の情報に変わります。
PackageCode
だけが変わっているのがわかります。
WiX チュートリアル 日本語訳 Lesson 1 始めよう / 1. ソフトウェア・パッケージ
Package の GUIDは、パッケージを生成するたびに違うものである必要があります。 事を簡単にし、新しい GUID を発行するのを忘れないようにするために、アスタリスクをタイプして WiX に GUID を自動生成させることが出来ます
この説明の意味がやっとわかりました。
「パッケージを生成するたび」というのはlight.exe
を実行する度ということでした。