У меня есть следующий источник:
<DirectoryRef Id="INSTALLDIR">
<Component Id="Groupacuthin.exeAutoUpdate_acuthin.exe" Guid="*" Win64="no">
<File Id="Groupacuthin.exeAutoUpdate_acuthin.exe" KeyPath="yes" Source="$(var.HARVESTDIR)\Groupacuthin.exeAutoUpdate\acuthin.exe" />
</Component>
</DirectoryRef>
У меня есть следующий шаблон, который находит все DirectoryRef с Id «INSTALLDIR» и компонентом с Id Groupacuthin.exeAutoUpdate_acuthin.exe 'и изменяет DirectoryRef Id с' INSTALLDIR 'на' TARGETDIR ':
<xsl:template match="wix:DirectoryRef[@Id='INSTALLDIR' and wix:Component/@Id='Groupacuthin.exeAutoUpdate_acuthin.exe']">
<xsl:copy>
<xsl:attribute name="Id">TARGETDIR</xsl:attribute>
<xsl:apply-templates select="node()"/>
</xsl:copy>
</xsl:template>
Вот правильный результат:
<DirectoryRef Id="TARGETDIR">
<Component Id="Groupacuthin.exeAutoUpdate_acuthin.exe" Guid="*" Win64="no">
<File Id="Groupacuthin.exeAutoUpdate_acuthin.exe" KeyPath="yes" Source="$(var.HARVESTDIR)\Groupacuthin.exeAutoUpdate\acuthin.exe" />
</Component>
</DirectoryRef>
Если у моего источника есть несколько DirectoryRefs с Component Id, которые выглядят например:
<Component Id="Groupacuthin.exeAutoUpdate_acuthin.exe" Guid="*" Win64="no">
<Component Id="Groupfile1.exeAutoUpdate_file1.exe" Guid="*" Win64="no">
<Component Id="Groupfile2.exeAutoUpdate_file2.exe" Guid="*" Win64="no">
Есть ли способ изменить шаблон, чтобы он соответствовал любому Компоненту, у которого есть Id, где Id содержит подстроку 'AutoUpdate'?