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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/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
Wix 为什么我的ifndef部分不起作用?_Wix_Conditional Compilation - Fatal编程技术网

Wix 为什么我的ifndef部分不起作用?

Wix 为什么我的ifndef部分不起作用?,wix,conditional-compilation,Wix,Conditional Compilation,我的program.wxs文件中有以下代码段: <?ifndef $(var.TwoOnly) ?> <Feature Id="FeatureOne" ... > ... </Feature> <?endif ?> <?ifndef $(var.OneOnly) ?> <Feature Id="FeatureTwo" ... > ...

我的
program.wxs
文件中有以下代码段:

<?ifndef $(var.TwoOnly) ?>
        <Feature Id="FeatureOne" ... >
          ...
        </Feature>
<?endif ?>

<?ifndef $(var.OneOnly) ?>
        <Feature Id="FeatureTwo" ... >
          ...
        </Feature>
<?endif ?>
查看编译后的
程序.wixobj
,我可以看到Feature Two的声明都在那里,运行
light
后,这两个功能都被列出,安装程序的功能就像没有设置
OneOnly
twonly
一样。为什么我的
ifndef
块不能正常工作

注:我还有以下几点:

<?ifdef $(var.OneOnly) ?>
  <?define productName = One Only ?>
<?else?>
  <?ifdef $(var.TwoOnly) ?>
    <?define productName = Two Only ?>
  <?else?>
    <?define productName = Both ?>
  <?endif?>
<?endif?>

这仍然不起作用

使用
ifdef
ifndef
时,必须在不使用
$(变量)
语法的情况下声明变量

<?ifndef TwoOnly ?>
  <?include featureOne.wxi ?>
<?endif?>


这是可行的。

如果在代码中定义变量而不是通过命令行传递值,是否可行?你试过WiX.chm中的例子吗?如果我在代码中定义,它就不起作用了。我没有尝试过
.chm
示例,但我会尝试一下。。。
<?ifndef $(var.TwoOnly) ?>
  <?include featureOne.wxi ?>
<?endif?>
<?ifndef TwoOnly ?>
  <?include featureOne.wxi ?>
<?endif?>