У меня есть следующий источник:
<DirectoryRef Id="INSTALLDIR">
<Component Id="acuthin.exe" Guid="{0DAD4D00-A40E-420D-B90A-B23B89B72881}">
и я хочу изменить INSTALLDIR на TARGETDIR:
<DirectoryRef Id="TARGETDIR">
<Component Id="acuthin.exe" Guid="{0DAD4D00-A40E-420D-B90A-B23B89B72881}">
но только если идентификатор компонента = "acuthin.exe". Я пробовал следующее:
<xsl:template match="wix:DirectoryRef[@Id='INSTALLDIR']/wix:Component[@Id='acuthin.exe']">
<xsl:copy>
<xsl:attribute name="Id">TARGETDIR</xsl:attribute>
<xsl:apply-templates select="node()"/>
</xsl:copy>
</xsl:template>
но он изменил идентификатор компонента вместо DirectoryRef:
<DirectoryRef Id="INSTALLDIR">
<Component Id="TARGETDIR">
Есть ли способ сказать ему изменить идентификатор DirectoryRef вместо этого?
Вот моя командная строка нагрева:
Heat" dir "Files\Groupacuthin.exeAutoUpdate" -dr КАТАЛОГ УСТАНОВКИ -var var.HARVESTDIR -gg -sw -nologo -scom -sreg -sfrag -srd -suid -cg "Groupacuthin.exeAutoUpdate" -t test.xslt -out "Компоненты \Groupacuthin.exeAutoUpdate.wxs"
Вот исходник до сопоставления с шаблоном:
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Fragment>
<DirectoryRef Id="INSTALLDIR">
<Component Id="acuthin.exe" Guid="{F48C7EB0-6192-4F92-8FCB-8DC8517572B5}">
<File Id="acuthin.exe" KeyPath="yes" Source="$(var.HARVESTDIR)\acuthin.exe" />
</Component>
</DirectoryRef>
</Fragment>
<Fragment>
<ComponentGroup Id="Groupacuthin.exeAutoUpdate">
<ComponentRef Id="acuthin.exe" />
</ComponentGroup>
</Fragment>
</Wix>
Спасибо!
Гэри