我正在尝试在我的主wxs文件中向安装程序添加一个文件。
<ComponentGroup Id="Files" Directory="Bin">
<?if $(var.FILE_EXISTS) = "true"?>
<Component>
<Condition>$(var.FILE_EXISTS) = "true"</Condition>
<File Source="$(var.SourceDir)/file.txt"/>
</Component>
</ComponentGroup>
我通过带有-d选项
的candle.exe传递FILE_EXISTS但它没有生效。它没有被添加。当我没有条件(只是File元素)时,它可以工作。有什么想法吗?
答案 0 :(得分:0)
据我了解,您所谈论的条件是构建时条件。基本上,您希望控制有问题的文件是否进入MSI包。
如果这是正确的,则<Condition>
下的<Component>
元素就是一个错误。这是安装时条件,只影响文件的安装。
另一个是纯语法问题。 <?if?>
指令必须具有关闭元素。
考虑到上述情况,您的代码段可能如下所示:
<ComponentGroup Id="Files" Directory="Bin">
<?if $(var.FILE_EXISTS) = "true"?>
<Component>
<File Source="$(var.SourceDir)/file.txt"/>
</Component>
<?endif?>
</ComponentGroup>