Checkbox WiX-将复选框值从Burn UI传递到MSI
我在Burn中有一个带有复选框“安装桌面图标”的自定义UI。我的MSI(也是用WiX创建的)中也有我用Burn替换的东西。问题是Burn似乎将复选框值设置为Checkbox WiX-将复选框值从Burn UI传递到MSI,checkbox,wix,burn,Checkbox,Wix,Burn,我在Burn中有一个带有复选框“安装桌面图标”的自定义UI。我的MSI(也是用WiX创建的)中也有我用Burn替换的东西。问题是Burn似乎将复选框值设置为0或1(通过MsiProperty),而我的MSI希望NULL或不为NULL。如果尝试通过Burn的复选框值发送,MSI将始终将其评估为NOTNULL。我发现我可以编辑我的WiX项目并更改: <Condition>DESKTOP_ICONS</Condition> 桌面图标 致: 桌面图标=1 这将解决问题。但是
0
或1
(通过MsiProperty
),而我的MSI希望NULL
或不为NULL
。如果尝试通过Burn的复选框值发送,MSI将始终将其评估为NOTNULL。我发现我可以编辑我的WiX项目并更改:
<Condition>DESKTOP_ICONS</Condition>
桌面图标
致:
桌面图标=1
这将解决问题。但是有没有办法让Burn根据复选框的值将NULL或notnull传递给MSI?Burn将“true”和“checked”视为“1”,将“0”视为false。但是,您可以在MSI中创建一个自定义操作,将数值属性转换为“NULL”。它看起来像:
<SetProperty Id="NULL" Value="1" After="AppSearch">DESKTOP_ICONS = 1</SetProperty>
桌面图标=1
现在,如果
DESKTOP\u ICONS
属性设置为“1”,则将定义名为“NULL”的属性(这是属性的一个非常有趣的名称,IMHO)。感谢您的关注。我可以看到编辑MSI将允许Burn复选框值通过MSI,但我想避免编辑MSI-看起来这是不可能的。另一种方法是,如果您想通过命令行设置一个逻辑属性,那么它将是:msiexec/i my.msi MYVAR=1
,然后是相反的,也就是说,MYVAR
未定义,它将是:msiexec/i my.msi MYVAR=“”
您可以通过Burn实现第一个功能,但就我所知,第二个功能无法实现-如果您想通过Burn的UI中的复选框来控制它,则无法实现。
<SetProperty Id="NULL" Value="1" After="AppSearch">DESKTOP_ICONS = 1</SetProperty>