2017-02-20 48 views
0

考慮這個目錄,維克斯工具箱 - 應用指南條件的文件

  <Directory Id="MyProgramDir" Name="DirName"> 
      <Component Id="comp_MyProgramDir" Guid="FC0409CE-27E6-475E-B6C2-95E4B4C0223C" KeyPath="yes"> 
      <Condition><![CDATA[MyCondition]]></Condition> 
      </Component> 
     </Directory> 

我要申請MyCondition到目錄的所有子組件。由於它是一個包含許多文件的非常大的目錄,有沒有辦法避免爲每個組件編寫條件? Transitive屬性根本沒有幫助!

+0

使用XSLT作出這樣的轉變。我建議你爲此添加一個標籤。 –

回答

0

你可以試試這個:

<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" cdata-section-elements="wix:Condition"/> 
<xsl:strip-space elements="*" /> 

<xsl:template match="@*|node()"> 
    <xsl:copy> 
     <xsl:apply-templates select="@*|node()" /> 
    </xsl:copy> 
    </xsl:template> 

<xsl:template match="wix:Component"> 
    <xsl:copy> 
     <xsl:apply-templates select="@*|node()"/> 
     <xsl:element name="Condition" namespace="http://schemas.microsoft.com/wix/2006/wi"> 
      <xsl:attribute name="level">1</xsl:attribute> 
      <xsl:text>MyCondition</xsl:text> 
     </xsl:element> 
    </xsl:copy> 
</xsl:template> 

</xsl:stylesheet> 

How to add condition to component during xsl transformation?