2

我在 Burn 中有自定义 UI,带有“安装桌面图标”复选框。在我的 MSI(也是用 WiX 创建的)中,我用 Burn 替换了同样的东西。问题是 Burn 似乎将复选框值设置为0or 1(via MsiProperty) 而我的 MSI 期望NULLor NOT NULL。如果您尝试通过 Burn 中的复选框值发送,MSI 将始终将其评估为 NOT NULL。我发现我可以编辑我的 WiX 项目并进行更改:

<Condition>DESKTOP_ICONS</Condition>

到:

<Condition>DESKTOP_ICONS = 1</Condition>

这将解决问题。但是有没有办法让 Burn 根据复选框的值将 NULL 或 NOT NULL 传递给 MSI?

4

1 回答 1

0

Burn 会将“true”和“checked”视为“1”,将“0”视为 false。但是,您可以在 MSI 中创建一个自定义操作,将数字属性转换为“NULL”。它看起来像:

<SetProperty Id="NULL" Value="1" After="AppSearch">DESKTOP_ICONS = 1</SetProperty>

现在如果属性设置为“1” Property,将定义命名的“NULL”(这是一个非常有趣的属性名称,恕我直言) 。DESKTOP_ICONS

于 2013-03-08T16:50:11.527 回答