プロジェクトからすべての.pdbファイルをフィルタリングしています。インターネットで、XSLTを使用してこれを行う方法の例をいくつか見ました(私はXSLTマスターではないため、いくつかをコピーしていくつか試しました)。次のXSLTスクリプトがある場合:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
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="service-search" match="wix:Component[contains(wix:File/@Source, '.pdb')]" use="@Id" />
<xsl:template match="wix:ComponentRef[key('service-search', @Id)]" />
</xsl:stylesheet>
しかし、pre-buildeventコマンドでこれを実行すると:
call "C:\Program Files (x86)\WiX Toolset v3.6\bin\heat.exe" dir "..\bin" -t Filter.xslt -sfrag -cg "WebBinaries" -gg -srd -var "var.$(ProjectName).TargetDir" -dr "WebBin" -out "$(SolutionDir)\Deployment\$(ProjectName).binaries.wxs"
次のエラーが発生します:孤立したコンポーネントが見つかりました...... pdbファイルへの参照は正しく削除されていますが、削除されたコンポーネントへの参照はまだそこにあります
着替えたら
<xsl:template match="wix:ComponentRef[key('service-search', @Id)]" />
に
<xsl:template match="wix:ComponentRef[key('service-search', @Id)]" />
別のエラーが発生します:セクションフラグメント内のシンボル........への未解決の参照
誰かがこの問題を解決する方法を知っていますか?
前もって感謝します