Да, это определенно возможно.Общая идея состоит в том, чтобы сделать компонент ярлыка условным для свойства, а затем настроить пользовательский интерфейс для подключения флажка к этому свойству.
Все это описано (но не для вашего конкретного примера) в Wix Tutorial , проницательное чтение.Но вот некоторые более конкретные примеры кода для вашего случая:
Добавить свойство
Создайте свойство, к которому можно подключить флажок.В файле .wxs добавьте Property
для хранения значения.
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product ...>
<Property Id="INSTALLSHORTCUT" />
</Product>
</Wix>
Добавьте условие
Добавьте Condition
к компоненту, который устанавливает ярлык, так что этов зависимости от значения вашего нового свойства INSTALLSHORTCUT
.
<Component Id="ProgramFilesShortcut" Guid="*">
<Condition>INSTALLSHORTCUT</Condition>
<Shortcut Id="ProductShortcut" ... />
</Component>
Добавьте флажок
Необходимо настроить диалоговое окно, чтобы добавить флажок в пользовательский интерфейс и подключить его к INSTALLSHORTCUT
собственность.Я не буду вдаваться во все детали здесь, но здесь есть хорошее руководство: Пересмотрен пользовательский интерфейс
Вам нужно скачать дерево исходных текстов wix, чтобы получить файлы .wxsпользовательский интерфейс, который вы используете.Например, чтобы добавить флажок в диалоговое окно InstallDir
в пользовательском интерфейсе WixUI_InstallDir
, необходимо загрузить WixUI_InstallDir.wxs
и InstallDirDlg.wxs
.Добавьте их в свой проект Wix и переименуйте их (например, Custom_InstallDir.wxs
и Custom_InstallDirDlg.wxs
).
Редактировать Custom_InstallDirDlg.wxs
, чтобы добавить свой флажок.Дайте <Dialog>
новый Id
тоже:
<Wix ...>
<Fragment>
<UI>
<Dialog Id="InstallDirAndOptionalShortcutDlg" ...>
<Control Id="InstallShortcutCheckbox" Type="CheckBox"
X="20" Y="140" Width="200" Height="17"
Property="INSTALLSHORTCUT" CheckBoxValue="1"
Text="Do you want to create a start menu shortcut?" />
</Dialog>
</UI>
</Fragment>
</Wix>
Редактировать Custom_InstallDir.wxs
, чтобы использовать настраиваемое диалоговое окно InstallDirAndOptionalShortcut
:
<Wix ...>
<Fragment>
<UI Id="Custom_InstallDir">
** Search & Replace all "InstallDirDlg" with "InstallDirAndOptionalShortcut" **
</UI>
</Fragment>
</Wix>
Наконец, обратитесь к пользовательскому интерфейсу вваш основной файл .wxs:
<Wix ...>
...
<UIRef Id="Custom_InstallDir" />
...
</Wix>