据我了解,在 WiX 中,如果属性不为空,则会检查一个复选框。因此,为了将复选框默认为“已选中”,必须在复选框之外定义属性。
鉴于此,我有一个复选框,允许用户选择是否要将快捷方式添加到桌面。最初它被设置为默认检查,但我现在正在尝试更改它,以便默认情况下未选中。但是,当我删除属性定义以使其不被检查时,该选项不再起作用。无论复选框是否选中,安装程序都不会添加快捷方式。下面是最初定义复选框的方式:
<Property Id="ADD_DESKTOP_SHORTCUT" Value="1" />
<Control Id="ShortcutCheckbox"
Type="Checkbox"
Property="ADD_DESKTOP_SHORTCUT"
CheckBoxValue="1"
Integer="yes"
Text="Add Desktop Shortcut" />
桌面快捷方式功能定义如下:
<Feature Id="DesktopShortcut" Title="Desktop Shortcut" Level="0">
<ComponentRef Id="CMP_DesktopShortcut" />
<Condition Level="1">
<![CDATA[(ADD_DESKTOP_SHORTCUT) or (REMOVE = "ALL")]]>
</Condition>
</Feature>
以上方法有效,但一旦我删除<Property Id="ADD_DESKTOP_SHORTCUT" Value="1" />
它,无论复选框选择如何,都不再添加快捷方式。
我也尝试过定义属性,但改变它的值是这样的:
<Property Id="ADD_DESKTOP_SHORTCUT" Value="{}" />
这也不起作用。我得到一个错误。(错误代码 2892)
谁能告诉我为什么删除默认值会导致选项停止工作?和/或如何让它工作?