Wix悩んだことメモ:強制上書き
>症状
初回インストール時にインストール先のディレクトリ内にインストールしたいファイルが既にある場合、上書きしてくれません。(レジストリは問題なく上書きできる)
msiexec のログ上には、下記のように出力され上書きしてくれません。
MSI (s) (80:10) [16:07:18:259]: File: C:\***\***\abc.data; Won't Overwrite; Won't patch; Existing file is unversioned but modified
>背景
Wixを使う前まではバッチファイルでファイルコピーによりインストールしていた。
Wixで作成したインストーラで初めてインストールする際に、既にファイルがある状態になっている。
>解決
msiexec のPROPERTYにREINSTALLMODEというのがあり、code='a'を使用するとファイルの強制上書きができます。
→バッチファイルを作成
補足)
初回インストール時にファイル上書きはされないが、その後に一度アンインストールしてから、再度インストールするとファイル上書きできる。(より正確にはアンインストール時に対象ファイルは削除されますので、上書きするファイルがない状態となり、インストールできる。)
使用例)
msiexec /i ******.msi REINSTALLMODE="am"
>参考URL
・REINSTALLMODE のリファレンス
https://msdn.microsoft.com/en-us/library/aa371182%28v=vs.85%29.aspx
・msiexecのインストール時のファイル上書きのメカニズム
http://blogs.msdn.com/b/astebner/archive/2005/08/30/458295.aspx