毎回忘れて調べ直しているのでメモとして残しておく。
Wix 3.11.1 を使用。
Upgrade の種類
Major Upgrade
- Product version と Product GUID を更新する。
- 日本語版チュートリアル等には Package GUID を更新するとも書いてあるが、これは意識しなくても毎回変更されるので気にしなくていい。
- Visual Studio で Wix のプロジェクトを作成すると default で Product GUID が "*" になっている。このまま build すると毎回 Product GUID は変更されるので、Major Upgrade したくないときにはここに GUID を割り当てる必要がある。
- Major Upgrade 時には常に Uninstall -> Install が行われるので Uninstall を避けたい場合には Minor Upgrade にしておく。
- Component GUID に変更がある場合は常に Major Upgrade を選択する必要がある。
- 基本的には Major upgrade を選択しておくので問題ないと思われる。
Minor Upgrade
- Product version のみを更新する。Product GUID は変更しない。
- 正直やったことない。
Small Upgrade
- 名前だけついているが Small Upgrade を選択することはないと思われる。
Component GUID を変更するタイミング
- Wix は原則として 1 File 1Component が基本だが、もし複数ファイルを含めた場合でファイル数が増減する場合には必ず Component GUID を変更する必要がある。
- File に更新があっただけの場合には Component GUID を変更する必要はないと思われる。
- 同じ component GUID を持つ component が複数回 install された場合には、OSはそのカウントを覚えているっぽい。例えば同じ msm を別の msi で展開する場合は同じ Component GUID を持っていれば uninstall もうまいことやってくれるということかもしれない。怖いので試したことはない。
参考:
WiX チュートリアル日本語版
WiXではじめるWindows Installer作成入門 第6回
[WIX] INSTALLERのCOMPONENT IDの付け方
[WiX] 簡単メジャーアップグレード対応
Change my component GUID in wix?