ユーザーごとのインストールとマシンごとのインストールの両方をサポートするようにセットアップを作成しようとしています。ソフトウェアをユーザーごとにインストールするか、マシンごとにインストールするかをユーザーがラジオ ボタンで UI から選択し、その選択に基づいて、さまざまなカスタム アクションとコピーするさまざまなファイルを選択できるようにします。
util:XmlFile 要素を使用して、インストール スコープに基づいて異なるいくつかのファイルを変更できることがわかりましたが、問題は、UI によってプロパティが変更される前にこのコンポーネントが実行されることです。コードの断片は次のとおりです。
<Property Id='ADXLoaderPrivileges' Value='bla' />
<Directory Id="TARGETDIR" Name="SourceDir">
<Component Id="adxloader.dll.manifest" Guid="51FC65CB-BEAD-4423-A840-49C9CB22E191">
<File Id="adxloader.dll.manifest" Source="$(var.ExcelProjectDir)\Loader\adxloader.dll.manifest" DiskId="1" KeyPath="yes" />
<util:XmlFile Id="ModifyAdxLoaderManifest" Action="setValue"
ElementPath="/configuration/loaderSettings/@privileges" File="[TARGETDIR]\adxloader.dll.manifest" Value="[ADXLoaderPrivileges]" />
</Component>
</Directory>
<Dialog Id='AllUsersChoice' X='50' Y='50' Width='373' Height='287' Title='[ProductName]' TrackDiskSpace='yes'>
<Control Id='NextButton' Type='PushButton' X='300' Y='261' Width='66' Height='18' Text='{\VSI_MS_Sans_Serif13.0_0_0}&Next >' TabSkip='no' Default='yes'>
<Publish Property='TARGETDIR' Value='[%ProgramFiles]\Manufacturer\ProductName\'><![CDATA[ALLUSERS=2]]></Publish>
<Publish Property='TARGETDIR' Value='[%APPDATA]\Manufacturer\ProductName\'><![CDATA[ALLUSERS=1]]></Publish>
<Publish Property='ADXLoaderPrivileges' Value='administrator'><![CDATA[ALLUSERS=2]]></Publish>
<Publish Property='ADXLoaderPrivileges' Value='user'><![CDATA[ALLUSERS=1]]></Publish>
</Control>
</Dialog>
ファイルは ALLUSERS プロパティ値に基づいてフォルダーにインストールされますが、XmlFile は「administrator」または「user」ではなく「bla」値で実行されます。
また、この選択に基づいて実行するカスタム アクションを指定するにはどうすればよいですか?