2016-11-03 1 views
1

Я использую WiX 3.9 и WixUI_Advanced диалоговое окно для создания установщика Windows. У пользователя есть возможность установить приложение локально или на машину (все пользователи). Для этого я использую свойство WixPerUserFolder.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) я также хочу, чтобы иметь возможность выбрать ключ реестра: HKCU или HKLM.

Если пользователь выбирает для локальной установки, то:

<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" подберет правильный улья в зависимости от того запущен пакет для каждого пользователя или на машине.

Смежные вопросы