我正在使用WiX工具创建安装程序。
创建“开始”菜单和“桌面”快捷方式时,我需要安装程序使其成为可选项。
类似于: []您要创建开始菜单快捷方式吗?
这可能吗?
答案 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.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文件中引用自定义UI:
<Wix ...>
...
<UIRef Id="Custom_InstallDir" />
...
</Wix>
答案 1 :(得分:-2)
在复选框点击事件或单击下一个按钮时,您可以调用自定义操作来创建快捷方式。