我使用this手册创建了WIX Web App Installer。现在我想使用XSLT过滤heat.exe发布的文件。我的XSLT:
<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">
<xsl:output method="xml" indent="yes" />
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:key name="extra-configs-search" match="wix:Component[contains(wix:File/@Source, '.config')]" use="@Id" />
<xsl:template match="wix:Component[key('extra-configs-search', @Id)]" />
<xsl:template match="wix:ComponentRef[key('extra-configs-search', @Id)]" />
</xsl:stylesheet>
我按照以下命令运行它:
"path-to-wix-toolset\heat.exe" dir $(Publish) -dr INSTALLFOLDER -ke -srd -cg MyWebWebComponents -var var.publishDir -gg -t ExcludeExtraFiles.xsl -out $(WebSiteContentCode)
因此,临时文件 WebSiteContent.wxs 按预期更新,但发布文件夹仍包含我要过滤的文件。我做错了什么?可能 WebSiteContent.wxs 更新得太晚但是如何解决?
编辑:(我使用的蜡烛和灯光命令)
"path-to-wix-toolset\candle.exe" -ext WixIISExtension -ext WixUtilExtension -ext WixSqlExtension -dpublishDir=$(Publish) -dMyWebResourceDir=. @(WixCode, ' ')
"path-to-wix-toolset\light.exe" -ext WixIISExtension -ext WixUtilExtension -ext WixSqlExtension -cultures:en-us -loc en-us.wxl -ext WixUIExtension -out $(MsiOut) @(WixObject, ' ')
答案 0 :(得分:0)
对不起,这段代码效果很好!我已经更改了MSI的名称,但仍然通过命令行调用旧名称。对我感到羞耻:) 如果您需要过滤要发布的文件,可以将其用作this手册的下一步。