在我的main.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-我在目录元素中添加了好的id
3-我在包含我的元素的相同功能中添加了一个新功能,这是我的新功能:
<Feature Id="ProductFeatureExamples" Title="Examples" Level="1">
<Condition Level="1">$(var.CheckBoxB3)=1</Condition>
<ComponentGroupRef Id="ExamplesComponents"/>
</Feature>
好的部分是:生成的.wxs中的所有文件都已安装。
坏的地方:情况不好。文件始终处于安装状态。
我试着理解为什么我的病情不起作用?这与前面组件中的情况相同。
我不想在生成的.wxs文件中的所有元素中添加条件,因为有很多条件,而且当我需要重新生成文件时,它也不太有用。
有人有主意吗?
谢谢。
我找到了解决方案。我没有正确理解使用Features条件的方法。我通过以下方式更改条件行:
<Condition Level="0">$(var.CheckBoxB3)=""</Condition>
对我来说,这意味着:如果复选框没有值(未选中),则将此功能更改为0级(不要使用此功能)。
我不清楚如何说:$(var.CheckBoxB3)不等于1
<>不起作用,因为它在XML 中
意思是另一回事
!=不存在
有人知道吗?