仅在选择这两个功能时才安装文件

Posted

技术标签:

【中文标题】仅在选择这两个功能时才安装文件【英文标题】:Install a file only if both the features are selected 【发布时间】:2014-06-23 11:19:27 【问题描述】:

有两个特性——特性1和特性2;只有当这两个特性都被选中时,我才需要安装一个文件,为此我写了:

  <Component Id="cmpCFA15F2C5DC1EEEA145360EA017FB322" Guid="*">
    <Condition><![CDATA[(&feature1=3) AND (&feature2=3)]]></Condition>
    <File Id="filCB4BD4847E5BDFC79A4308D520941A22" KeyPath="yes" Source="$(var.Binsourcedir)\hello.exe" />
  </Component>

但它不起作用,感谢任何帮助。我错过了什么?提前感谢

【问题讨论】:

如果这适用并且您忽略了它,如果 feature2 是 feature1 的子功能,那么您只需要引用 feature2 中的组件。 如果您将该文件放在它自己单独的隐藏功能中,我认为如果您发布一个 AddLocal 事件来添加该功能,它可能会起作用,条件是选择另外两个功能。 【参考方案1】:

组件条件下的功能状态将不起作用。请参阅http://www.joyofsetup.com/2008/04/09/feature-states-in-component-conditions/,了解我对它为什么不起作用的细分。

【讨论】:

如果两个必需的功能之一已经安装、将要安装或将继续安装,可能总是不会将文件全部放到虚拟目录中,然后将临时记录发送到 MSI 以将文件克隆到真实目录?谢谢你提醒我这一点。对于安装程序来说,无论哪种方式似乎都太复杂了。我会重构应用程序,让生活更简单。

以上是关于仅在选择这两个功能时才安装文件的主要内容,如果未能解决你的问题,请参考以下文章

如何使用WiX中的功能条件?

为啥 VS 2010 Intellisense 仅在我安装了视觉辅助 X 时才有效?

仅在设置了特定的弹簧配置文件时才运行集成测试

SQL Server 查询仅在没有变量为空时才有效

异步/等待仅在读取文件时才是有效的异步函数[重复]

仅在 Visual Studio 外部运行时才找到文本文件