Ich habe das folgende Snippet eines. WXS (IDS ausgelassen) von WiX Ernte ausgegeben.Wix Heat Ernte: Entfernen von Verzeichnissen mit gefilterten Komponenten mit Transformation
<Directory Id="" Name="tr">
<Component Id="" Guid="*">
<File Id="" KeyPath="yes" Source="$(var.SourceDir)\tr\ZedGraph.resources.dll" />
</Component>
</Directory>
<Directory Id="" Name="zh-cn">
<Component Id="" Guid="*">
<File Id="" KeyPath="yes" Source="$(var.SourceDir)\zh-cn\ZedGraph.resources.dll" />
</Component>
</Directory>
<Directory Id="" Name="zh-tw">
<Component Id="" Guid="*">
<File Id="" KeyPath="yes" Source="$(var.SourceDir)\zh-tw\ZedGraph.resources.dll" />
</Component>
</Directory>
</DirectoryRef>
Und die folgende Umwandlung wird die Komponenten entfernen, aber die leeren Verzeichniselemente verlassen. Wie kann ich sie auch entfernen? Vorausgesetzt, ich möchte nicht alle Verzeichniselemente ausblenden. Im Idealfall möchte ich sie anhand der ID der Komponente abgleichen, die von der Suche zurückgegeben wird.
<xsl:key name="zedResource-search" match="wix:Component[contains(wix:File/@Source, 'ZedGraph.resources.dll')]" use="@Id" />
<xsl:template match="wix:Component[key('zedResource-search', @Id)]" />
<xsl:template match="wix:ComponentRef[key('zedResource-search', @Id)]" />
This question ist ähnlich, verwendet aber die Verzeichnisnamen, die ich für jede dieser Zugabe eine Suche vermeiden möchte, weil es schon ein paar Sprachvarianten sind.
Abgesehen von möglichen Verwirrungen für menschliche Leser, "leere" Directory-Objekte nichts tun. (Mit leer, ich meine, sie sind am Ende die Eltern von 0 Komponenten, die weit über die XML-Element-Struktur geht.) –
Danke für die Informationen. Diese Verwirrung möchte ich vermeiden. – ProdigousRanger