具体的には、私の WIX 展開プロジェクトで、TARGETDIR を [ProgramFilesFolder][Manufacturer] に設定しようとしています。これにより、WixUI_InstallDir のカスタム変更バージョンが InstallDirDlg を開いたときに、ドライブ ルートではなくそのパスにデフォルト設定されます。
TARGETDIRの設定、ダイアログ間のアクションの挿入、およびドキュメント内のさまざまなデータに関する質問に対して見つけた回答に基づいて、次のようなさまざまな形式のカスタム アクションを試しています。
<CustomAction Id="SetTARGETDIR" Property="TARGETDIR" Value="[ProgramFilesFolder][Manufacturer]" Execute="immediate" />
Property="WIXUI_INSTALLDIR"、Execute="firstSequence"、値のハードコーディングも試しました。
これをInstallExecuteSequenceで呼び出してみました:
<InstallExecuteSequence>
<Custom Action="SetTARGETDIR" After="FindRelatedProducts"></Custom>
</InstallExecuteSequence>
そしてもちろん、さまざまなイベントの前後に挿入しようとしました。(厄介な障害の 1 つは、Before="InstallDirDlg" がアクションを挿入するのに最適な場所であると期待していたのに、ダイアログをイベントとして使用しようとするとコンパイル エラーが発生することです。)
また、InstallDirDlg が呼び出された時点で、UI フラグメント内でアクションを公開しようとしました。
<Publish Dialog="WelcomeDlg" Control="Next" Event="DoAction" Value="SetTARGETDIR">NOT Installed</Publish>
私が試したいくつかのことはエラーをスローしましたが、ほとんどの場合、問題は TARGETDIR が変更されていないことです。デフォルトのインストール パスはドライブ ルートのままです。私の推測では、この WixUI の使用について、カスタム アクションの起動方法を根本的に変える何かがあるということです。しかし、これがなぜそうなのか、手がかりが見つからないようです。