Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Checkbox WiX-将复选框值从Burn UI传递到MSI_Checkbox_Wix_Burn - Fatal编程技术网

Checkbox WiX-将复选框值从Burn UI传递到MSI

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 这将解决问题。但是

我在Burn中有一个带有复选框“安装桌面图标”的自定义UI。我的MSI(也是用WiX创建的)中也有我用Burn替换的东西。问题是Burn似乎将复选框值设置为
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>