WiX WSLT转换以从.wsx文件中删除属性

时间:2016-02-08 17:48:31

标签: xslt wix transform

另一个变换noob问题:我试图想出一个将从Heated .wxs文件中删除属性的转换。

Heat正在生成类属性' RelativePath ="是"这是在编译器中抛出错误。在我们的案例中,该属性是不必要的。只需将其更改为" no"没有摆脱错误。我想要做的是运行转换来删除属性。

当前输出文件如下所示:

array

我希望得到:

slice

这里有一个附加的拼图我已经在运行一个转换来添加添加属性Pemanent =" yes"到组件。

以下是我目前正在运行的转型(本论坛慷慨提供):

<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    <Fragment>
        <DirectoryRef Id="SystemFolder">
            <Component Id="todgub7.dll" Guid="{4DEBD59A-D93A-43CC-AD8A-2198E1C308F7}" Permanent="yes">
                <File Id="todgub7.dll" KeyPath="yes" Source="$(var.OC2.WinSys32)\todgub7.dll">
                    <Class Id="{359AA0C1-DDF8-49DB-83FF-6184706A9106}" Context="InprocServer32" Description="ComponentOneUnboundDataSource" RelativePath="yes" ThreadingModel="apartment">
                        <ProgId Id="ComponentOneUnboundDataSource" Description="ComponentOne OLE DB Data Source for Unbound Mode" />
                    </Class>
                </File>
                <RegistryValue Root="HKCR" Key="CLSID\{359AA0C1-DDF8-49db-83FF-6184706A9106}\RefCount" Value="1" Type="string" Action="write" />
            </Component>
        </DirectoryRef>
    </Fragment>
</Wix>

1 个答案:

答案 0 :(得分:2)

将此模板添加到样式表中:

 <xsl:template match="@RelativePath"></xsl:template>

由于它更具体,因此它将优先于复制未命名为RelativePath的属性的其他模板。