在我的主要.wxs中,我有以下组件:
<Component Id="Component1" Guid="FBE06968-502C-4FFB-82F8-A314AD7D5789" Directory="INSTALLFOLDER">
<Condition>$(var.CheckBoxB3)=1</Condition>
<File Name="File.dll" Source="$(var.BinDir)File.dll" />
</Component>
它工作正常。安装文件并选中复选框。
我决定使用heat.exe添加特定目录中的所有文件。
1 - 我在项目中添加了生成的.wxs文件
2 - 我在Directory元素中添加了好的id
3 - 我在包含我的元素的同一个功能中添加了一个新功能,这是我的新功能:
<Feature Id="ProductFeatureExamples" Title="Examples" Level="1">
<Condition Level="1">$(var.CheckBoxB3)=1</Condition>
<ComponentGroupRef Id="ExamplesComponents"/>
</Feature>
好的部分:生成的.wxs中的所有文件都已安装。
坏的部分:条件不起作用。始终安装文件。
我试着理解为什么我的病情不起作用?它与前面组件中的条件相同。
我不想在生成的.wxs文件中的所有元素中添加条件,因为它们有很多,而且当我需要重新生成文件时它也不是很有用。
有人有想法吗?
感谢。
答案 0 :(得分:2)
我找到了解决方案。 我没有正确理解使用条件和特征的方法。 我通过以下方式更改条件行:
<Condition Level="0">$(var.CheckBoxB3)=""</Condition>
对于我的情况,它意味着:如果复选框没有值(未选中),则将此功能更改为0级(不要使用此功能)。
我不清楚如何说:$(var.CheckBoxB3)不等于1
&LT;&GT;不是workign,因为它在XML
中!意味着另一件事
!=不存在
有人在想吗?