“创建快捷方式”复选框

时间:2011-01-11 13:41:59

标签: wix windows-installer shortcut

我正在使用WiX工具创建安装程序。

创建“开始”菜单和“桌面”快捷方式时,我需要安装程序使其成为可选项。

类似于: []您要创建开始菜单快捷方式吗?

这可能吗?

2 个答案:

答案 0 :(得分:21)

是的,这绝对是可能的。一般的想法是使快捷方式组件以属性为条件,然后自定义UI以将复选框连接到该属性。

所有这些都在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>

添加复选框

您需要自定义对话框以向UI添加复选框并将其连接到INSTALLSHORTCUT属性。我不会在这里详细介绍所有细节,但这里有一个很好的教程:User Interface Revisited

您需要下载wix源代码树以获取您正在使用的UI的.wxs文件。例如,要将复选框添加到InstallDir用户界面中的WixUI_InstallDir对话框,您可以下载WixUI_InstallDir.wxsInstallDirDlg.wxs。将它们添加到您的Wix项目并重命名它们(例如,Custom_InstallDir.wxsCustom_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文件中引用自定义UI:

<Wix ...>
  ...
  <UIRef Id="Custom_InstallDir" />
  ...
</Wix>

答案 1 :(得分:-2)

在复选框点击事件或单击下一个按钮时,您可以调用自定义操作来创建快捷方式。