在我的 Wix 中,我以这种方式包含了很多文件:
<Component Id="mycomponent" Guid="*" Feature="Core" >
<Condition>$(var.Include) = 1</Condition>
<File Id="mycomponent.file" KeyPath="yes"
Source="$(var.BinDir)\mycomponent.file" />
</Component>
因此我可以传入不同的 var.Include 值来为不同环境生成包。
虽然生成的包似乎确实有效,但我注意到即使我将其设置为不包含这些组件,包的大小也总是很大。看起来 WiX 总是在构建 msi 时包含所有组件,并且仅在使用 var.Include = 0 构建包时才选择不安装这些组件...
这是正常行为吗?
最佳答案
条件元素用于确定组件是否被安装,而不是它是否被包含在构建中。另外,请确保不要混淆条件语句中使用的 Windows Installer 属性和预处理器变量/语句。两种不同的野兽。
关于wix - 在 Wix 中设置组件条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15200581/