2016-11-03 17 views
1

私はWiX 3.9とWixUI_Advancedダイアログを使用してWindowsインストーラを作成します。ユーザーは、ローカルまたはマシン(すべてのユーザー)ごとにアプリをインストールすることを選択できます。そのために私はWixPerUserFolderプロパティを使用します。 HKCUまたはHKLM:Wixユーザの選択に基づく条件付きレジストリ書き込み

<Publish Dialog="InstallScopeDlg" Control="Next" Property="WixAppFolder" Value="WixPerUserFolder" Order="1">!(wix.WixUISupportPerUser) AND NOT Privileged</Publish> 

<Publish Dialog="InstallScopeDlg" Control="Next" Property="MSIINSTALLPERUSER" Value="1" Order="8">WixAppFolder = "WixPerUserFolder"</Publish> 

<Publish Dialog="InstallScopeDlg" Control="Next" Property="MSIINSTALLPERUSER" Value="{}" Order="9">WixAppFolder = "WixPerMachineFolder"</Publish> 

<Publish Dialog="InstallScopeDlg" Control="Next" Property="ALLUSERS" Value="{}" Order="3">WixAppFolder = "WixPerUserFolder"</Publish> 

<Publish Dialog="InstallScopeDlg" Control="Next" Property="ALLUSERS" Value="1" Order="2">WixAppFolder = "WixPerMachineFolder"</Publish> 

<Publish Dialog="InstallScopeDlg" Control="Next" Property="APPLICATIONFOLDER" Value="[WixPerUserFolder]" Order="4">WixAppFolder = "WixPerUserFolder"</Publish> 

<Publish Dialog="InstallScopeDlg" Control="Next" Property="APPLICATIONFOLDER" Value="[WixPerMachineFolder]" Order="5">WixAppFolder = "WixPerMachineFolder"</Publish> 

は、ユーザーの選択(WixPerUserFolderまたはWixPerMachineFolder)に基づいて、私はまた、レジストリキーを選択することができるようにしたいです。

ユーザーは、ローカルインストール用に選択した場合:

<RegistryKey Root="HKCU" Key="$(var.RegKey)" ForceDeleteOnUninstall="yes" ForceCreateOnInstall="yes"> 
     <RegistryValue Type="string" Value="" KeyPath="yes" /> 
     <RegistryValue Type="string" Name="InstallDir" Value="[INSTALLDIR]"/> 
</RegistryKey> 

そうでない場合:

<RegistryKey Root="HKLM" Key="$(var.RegKey)" ForceDeleteOnUninstall="yes" ForceCreateOnInstall="yes"> 
    <RegistryValue Type="string" Value="" KeyPath="yes" /> 
     <RegistryValue Type="string" Name="InstallDir" Value="[INSTALLDIR]"/> 
</RegistryKey> 

答えて

0

Root="HKMU"は、パッケージがユーザーごとまたはマシンで実行されているかどうかに基づいて右のハイブを選択します。

関連する問題