すっかりと忘れ去っていたのでメモ。
CustomAction DLL を、In-Script(主に管理者権限で動かしたい場合などに使う)で動作させると、プロパティにアクセスできません。
そんなことはもうすっかりと忘れ去っていたので。。。
じゃぁどうするか?
というと、カスタムアクションのIDと同じIDを持つプロパティに値をセットしてやることで、パラメータを渡すことができます。
受け取るDLL側は、”CustomActionData” (IPROPNAME_CUSTOMACTIONDATA で msiDefs.h に定義)という専用のプロパティとして受け取ります。
1つしかないので、複数渡したい場合は、なにかしらのセパレータで区切る、コマンドラインのように /hoge=foo /huga=bar とするなど、工夫する必要があります。
CustomActionDataなんて扱ったの何年振りよ?というくらい前のことなので、思い出すまでにすげー時間がかかった。。。orz
ちなみに、WiX 3.x の場合はこんな感じ。
https://gist.github.com/Tocchann/e30105bb09d23cad6f386057deb0484e