我在wix中的每个用户安装项目中收集了大量文件。
我使用heat.exe来收集文件,但是一个组件中的每个文件都有自己的keypath属性,而我的文件将复制到“app data”,所以它必须使用HKCU下的注册表项作为其KeyPath,所以我必须更改XML文件中的每个项目。
可以通过heat.exe完成吗?我有数以千计的文件要收获,手动修复它很糟糕。
答案 0 :(得分:6)
使用此xslt
为具有子节点的节点自定义KeyPath
项。
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
exclude-result-prefixes="msxsl"
xmlns:wix="http://schemas.microsoft.com/wix/2006/wi"
xmlns:my="my:my">
<xsl:output method="xml" indent="yes" />
<xsl:strip-space elements="*"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match='wix:Wix/wix:Fragment/wix:ComponentGroup/wix:Component'>
<xsl:copy>
<xsl:apply-templates select="@*"/>
<xsl:attribute name="KeyPath">
<xsl:text>no</xsl:text>
</xsl:attribute>
<xsl:apply-templates select="node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
源自@KirillPolishchuk的回答https://stackoverflow.com/a/8035049/483588
答案 1 :(得分:1)
据我所知,热量不支持这种开箱即用的功能。但是,您可以将XSL模板应用于热量输出,并按照您希望的方式调整最终的wxs文件。有关更多详细信息,请参阅-t:switch of heat.exe。