HeatDirectory 仅收获根级文件

HeatDirectory to harvest only root level files

有没有办法让我的 wixproj 中的 HeatDirectory 任务只收集根级别的文件而不深入任何子目录?当然,我可以处理输出文件的 运行 XSL 转换,但我更喜欢更简洁的方式。如果没有办法,那么如果有人有一个干净的 XSL 转换片段示例来处理它(至少会节省我的时间),我将不胜感激。非常感谢:)

XSLT 似乎是最合适的方式。此处提到了其他几个解决方案:,例如制作文件副本以获取或使用外部开源应用程序。

Wix还有商业扩展包,更强大的替代heat.exe,可以排除文件和文件夹,使用掩码:https://www.firegiant.com/wix/wep-documentation/harvesting/harvestfolder/

既然看起来没有通过 HeatDirectory 任务输入参数来处理它的集成方法,那么我将 post 我编写的 XSLT 片段,它对我有用。谁用谁需要根据需要修改:

<xsl:key name="SubDirComponentKeys" match="/wix:Wix/wix:Fragment/wix:DirectoryRef/wix:Directory/wix:Directory//wix:Component" use="@Id" />
<xsl:template match="/wix:Wix/wix:Fragment/wix:DirectoryRef/wix:Directory/wix:Directory" />
<xsl:template match="//wix:ComponentRef[contains(key('SubDirComponentKeys',@Id)/wix:File/@Source, '\')]" />