[WiX] WiXで64bit用installerを作成 (調査メモ)

今わかっているところでは、

  • candle.exe の-arch の引数をx64に指定 (32bitなら x86)
  • Packageタグに Platform=”” x86, x64
  • DirectoryのProgramFileFolder とProgramFile64Folder を使い分ける。これをしないと、エラーが出る。

ProgramFileFolderのままで64bitバイナリを指定していると

xxxxx.wxs(39) : error LGHT0204 : ICE80: This 64BitComponent MainExecutable uses 32BitDirectory INSTALLLOCATION

最終的な場所であるINSTALLLOCATIONでエラーが出るのだが、実はrootであるProgramFileFolderが間違っている、という。
WiXの開発者の一人、Bob Arnsonは SYS.PLATFORMをみて<?ifdef?>で切り替えるのだ、と答えている。
http://www.mail-archive.com/wix-users@lists.sourceforge.net/msg23325.html
component には Win64=”yes”を指定。(なくてもいいもの?)
64と32だと互換性がなく中身が違うから、GUIDを分けるべきなんでしょう、きっと。
追記:
64bitインストーラーの作成に関して、以下のblogで指定の仕方と効果を調査されていた。
[Windows]WiXによるインストーラ作成
これによれば、candleに -arch オプションを与えるのと、xwsで属性を指定するのと、どちらかを選択すればよいようだ。

広告
%d人のブロガーが「いいね」をつけました。