You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Wix v4 Bundle的UI中添加创建桌面快捷方式复选框

在Wix v4 Bundle中添加“创建桌面快捷方式”复选框

WixStandardBootstrapperApplication(WSBA)的默认主题不支持直接添加自定义UI控件,你需要通过自定义WSBA主题+在Bundle与MSI间传递变量的方式实现这个功能,具体步骤如下:

步骤1:导出默认主题文件

使用Wix工具集的dark.exe导出rtfLargeLicense主题的源文件,用于后续修改:

dark.exe -theme rtfLargeLicense -out CustomTheme.wxl

(dark.exe位于Wix Toolset v4的安装目录,比如C:\Program Files (x86)\WiX Toolset v4\bin)

步骤2:修改自定义主题,添加复选框

打开导出的CustomTheme.wxl,找到InstallOptions页面(或在License页面末尾),插入一个绑定到自定义变量的CheckBox控件:

示例修改片段:

<!-- 在InstallOptions页面的现有控件后添加 -->
<Control Id="CreateDesktopShortcutCheckbox" Type="CheckBox" X="10" Y="170" Width="300" Height="17" Property="CREATE_DESKTOP_SHORTCUT" CheckBoxValue="1" Text="Create Desktop Shortcut" />

注意变量名CREATE_DESKTOP_SHORTCUT需在后续步骤中保持一致。

步骤3:在Bundle中引用自定义主题并定义变量

修改bundle.wxs,替换WSBA的主题配置为自定义主题,并定义持久化变量:

修改后的BootstrapperApplication与变量定义部分:

<BootstrapperApplication>
  <bal:WixStandardBootstrapperApplication 
      ThemeFile="CustomTheme.wxl"
      LogoFile="logo_installer.ico" 
      LicenseFile="LicenseAgreement_en.rtf"
      LaunchTarget="C:\Program Files\My Application\myapplication.exe"/>
</BootstrapperApplication>

<!-- 在Bundle内添加变量定义 -->
<Variable Name="CREATE_DESKTOP_SHORTCUT" Type="numeric" Value="1" Persisted="yes" />
  • Value="1"表示默认勾选复选框,Value="0"则默认不勾选
  • Persisted="yes"确保安装时的选择会被保存

步骤4:将变量传递给MSI项目

在bundle.wxs的MsiPackage元素中,添加MsiProperty属性,把Bundle的变量传递给MSI:

<MsiPackage SourceFile="myapplication.msi" DisplayName="My Application">
  <MsiProperty Name="CREATE_DESKTOP_SHORTCUT" Value="[CREATE_DESKTOP_SHORTCUT]" />
</MsiPackage>

步骤5:修改MSI项目,根据变量创建快捷方式

在你的MSI项目(如Product.wxs)中,先定义接收的属性,再给快捷方式组件添加条件判断:

  1. 定义属性:
<Property Id="CREATE_DESKTOP_SHORTCUT" Value="1" />
  1. 修改快捷方式组件:
<Component Id="ApplicationShortcut" Guid="YOUR-GUID-HERE" Directory="DesktopFolder">
  <Shortcut Id="ApplicationDesktopShortcut" 
            Name="My Application" 
            Target="[INSTALLFOLDER]myapplication.exe" 
            WorkingDirectory="INSTALLFOLDER" />
  <Condition>CREATE_DESKTOP_SHORTCUT = 1</Condition>
</Component>

只有当复选框被勾选(变量值为1)时,才会创建桌面快捷方式。

注意事项

  • 确保CustomTheme.wxl被包含在Bundle项目中,设置为内容并复制到输出目录
  • 变量名在Bundle、主题、MSI中必须完全一致
  • 如需多语言支持,可在主题文件中使用字符串资源代替硬编码文本

内容的提问来源于stack exchange,提问作者Stephen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 02:07:04