Wix Toolsetでパスが存在したらインストール先を変更する方法
Wix Toolsetを使ってインストーラを作成していたら,Product要素内で<UIRef Id="WixUI_Mondo" />を追加してFeature要素のConfigurableDirectory属性に"INSTALLFOLDER"などインストールするディレクトリIdを指定しているとインストール中にインストール先を指定することができるようになる。
<Property Id="INSTALLFOLDER" Value="L:\Program Files"/>などにしていればデフォルトインストール先を変えることもできるが,L:\がない場合にはインストーラそのものが異常終了してしまう。
この時の変更するのは
<Property Id="INSTALLFOLDER" Value="L:\Program Files"/>
の置き換えである。次のようになる。
<Property Id="DIRECTORYEXISTS"> <DirectorySearch Id="CheckFileDir" Path="L:\" Depth="0" AssignToProperty="yes"/> </Property> <SetProperty Id="INSTALLFOLDER" After="AppSearch" Value="L:\Program Files">DIRECTORYEXISTS</SetProperty>
L:\があるかどうかを確認してそれをDIRECTORYEXISTSに格納する。その結果をもとにしてINSTALLFOLDERを設定しなおす。
このようにしておくと,L:\が存在すればL:\Program Filesがインストールディレクトリになるけどない場合にも異常終了に至ることはない。