Я использую WiX Tool для создания установщика.
Мне нужен установщик, чтобы сделать его необязательным при создании меню "Пуск" и "Рабочий стол".
Что-то вроде: [ ] Вы хотите создать ярлык меню "Пуск"?
Возможно ли это?
Я использую WiX Tool для создания установщика.
Мне нужен установщик, чтобы сделать его необязательным при создании меню "Пуск" и "Рабочий стол".
Что-то вроде: [ ] Вы хотите создать ярлык меню "Пуск"?
Возможно ли это?
Да, это определенно возможно. Общая идея заключается в том, чтобы компонент ярлыка был обусловлен свойством, а затем настроил ваш пользовательский интерфейс, чтобы связать флажок с этим свойством.
Все это описано (хотя и не для вашего конкретного примера) в 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>
В окне события флажка или при нажатии следующей кнопки вы можете вызвать настраиваемое действие для создания ярлыков.