在WiX中,如何在片段中创建自定义表?

时间:2014-03-30 20:10:57

标签: build wix votive

我正在使用Visual Studio的“Votive”集成开发WiX安装程序。

我正在使用<CustomTable>创作一个简单的自定义表格,我想将其放在<Fragment>内的单独文件中。

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    <Fragment>
      <CustomTable Id="CustomActionData">
        <Column Id="Id" Category="Identifier" PrimaryKey="yes" Type="int" Width="4" />
        <Column Id="AssemblyFile" Category="Text" Type="string" PrimaryKey="no" />
        <Column Id="TypeName" Category="Text" Type="string" PrimaryKey="no" />
        <Row>
          <Data Column="Id">1</Data>
          <Data Column="AssemblyFile">MyAssembly.dll</Data>
          <Data Column="TypeName">MyAssembly.TypeName</Data>
        </Row>
      </CustomTable>
    </Fragment>
</Wix>

麻烦的是,WiX / Votive不包含片段,因为没有引用它。没有<CustomTableRef>这样的东西。但是,<Fragment><CustomTable>的有效父级,因此必须有一种方法可以让WiX包含它。

有什么建议吗?如何在片段中引用自定义表?

1 个答案:

答案 0 :(得分:1)

理想情况下,它是CustomTableRef但不存在。 (随意提出建议。)所以你需要另一个Element / ElementRef对。请尝试使用Property / PropertyRef。

这与WiX自定义操作一起使用的方式是编译器扩展直接写入自定义表行,因此没有需要链接的创作。