Wix MSI - Использование Listview вместо InstallDirDlg - PullRequest
0 голосов
/ 14 февраля 2020

Мне нужно установить файл, используя MSI, в указанное c местоположение. Мастер установки должен предоставить список (я выбрал элемент управления Listview) с местоположениями, хранящимися в реестре. Установка будет выполнена в выбранном месте из этого списка.

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    <Fragment>
        <UI>
            <Dialog Id="MyInstallDirDlg" Width="370" Height="270" Title="!(loc.InstallDirDlg_Title)">
                ...
                <Control Id="myRadioGroupLabel" Type="Text" X="20" Y="60" Width="290" Height="30" NoPrefix="yes" />
                <Control Id="myRadioGroup" Type="RadioButtonGroup" Property="buttonGroup" Width="320" Height="100" X="20" Y="100">
                    <RadioButtonGroup Property="buttonGroup">
                        <RadioButton Value="C:\abc" Text="C:\abc" Height="17" Width="320" X="0" Y="0" />
                        <RadioButton Value="C:\def" Text="C:\def" Height="17" Width="320" X="0" Y="40" />
                    </RadioButtonGroup>
                </Control>
                ...
                <!-- Control Id="FolderLabel" Type="Text" X="20" Y="60" Width="290" Height="30" NoPrefix="yes" Text="!(loc.InstallDirDlgFolderLabel)" />
                <Control Id="Folder" Type="PathEdit" X="20" Y="100" Width="320" Height="18" Property="WIXUI_INSTALLDIR" Indirect="yes" />
                <Control Id="ChangeFolder" Type="PushButton" X="20" Y="180" Width="56" Height="17" Text="!(loc.InstallDirDlgChange)" / -->
            </Dialog>
        </UI>
    </Fragment>
</Wix>

Копия оригинала InstallDirDlg.wxs , где все эти строки относятся к группам радиосвязи. Как можно динамически заполнить такой список данными (C: \ ab c, C: \ def)? После выбора одного элемента из него, как я могу использовать его в качестве TARGETDIR? Мне нужна та же функциональность, что и у кнопки ChangeFolder .

...