HEAT的XSLT更新临时文件,但不会在发布目录中过滤文件

时间:2014-05-21 14:58:33

标签: xslt wix

我使用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, &apos; &apos;)

"path-to-wix-toolset\light.exe" -ext WixIISExtension -ext WixUtilExtension -ext WixSqlExtension -cultures:en-us -loc en-us.wxl -ext WixUIExtension -out $(MsiOut) @(WixObject, &apos; &apos;)

1 个答案:

答案 0 :(得分:0)

对不起,这段代码效果很好!我已经更改了MSI的名称,但仍然通过命令行调用旧名称。对我感到羞耻:) 如果您需要过滤要发布的文件,可以将其用作this手册的下一步。