Флажок «Создать ярлык» - PullRequest
       29

Флажок «Создать ярлык»

14 голосов
/ 11 января 2011

Я использую WiX Tool для создания установщика.

Мне нужен установщик, чтобы сделать его необязательным при создании ярлыков меню «Пуск» и на рабочем столе.

Что-то вроде: [] Хотите создать ярлык в меню «Пуск»?

Возможно ли это?

Ответы [ 2 ]

21 голосов
/ 22 апреля 2013

Да, это определенно возможно.Общая идея состоит в том, чтобы сделать компонент ярлыка условным для свойства, а затем настроить пользовательский интерфейс для подключения флажка к этому свойству.

Все это описано (но не для вашего конкретного примера) в 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>
0 голосов
/ 13 января 2011

В событии щелчка по флажку или при следующем нажатии кнопки вы можете вызвать настраиваемое действие для создания ярлыков.

...