概要
32bitのプログラムであるtest1.exeをProgram Filesフォルダー{64bit版のWindowsの場合Program Files(x86)}にインストールするサンプルです。
インストール先は任意に変更できます。コントロールパネルでアンインストールができます。
Visual C++のコード作成時のオプションでランタイムライブラリをDLLにした場合、Visual C++ 2008再配布パッケージがインストールされていないと、下記の様なダイアログボックスが出て実行できない場合があります。(Visual C++ 2008 がインストールされている場合やWindowsのバージョンや使用しているアプリケーションによって異なる)
Wixでは<Marge Id=と<MergeRefを使用して再配布パッケージをマージすることができます。
マージモジュールはC:\Program Files (x86)\Common Files\Merge Modules等のMicrosoft_VC90_CRT_x86.msmです。
フォルダー指定は、$(env.CommonProgramFiles)\Merge Modules\で上記フォルダーを参照しています。
64bitの場合やVisual C++の他のバージョンについては、想像つくと思いますが、モジュール名が下記のとおりとなります。
Visual C++ 2005 32bit Microsoft_VC80_CRT_x86.msm
Visual C++ 2008 32bit Microsoft_VC90_CRT_x86.msm
Visual C++ 2008 64bit Microsoft_VC90_CRT_x86_x64.msm
あらかじめWix3(wix3.0)をインストールしておく必要があります。
wxsソース上の841F8AF7-7A9A-470e-8008-E2223621EAD6等については世界で任意の値でなければならないのでこのインストーラをもとに配布プログラムを作る場合はguidgen.exe等で再度任意のGUID値を得なければなりません。