如何在Wix中创建一个空的自定义表?

时间:2010-04-14 17:01:02

标签: wix dtf custom-action

如何让Wix在最终的MSI中包含一个没有行的CustomTable?如果我只是像这样定义表

<CustomTable Id="MyTable">
  <Column Id="Id" Type="string" Category="Identifier" PrimaryKey="yes"/>
  <Column Id="Root" Type="string"/>
  <Column Id="Key" Type="string"/>
  <Column Id="Name" Type="string"/>
</CustomTable>

Wix在最终输出中省略了它。

我的DTF CustomAction希望它在那里,以便它可以在执行期间向它添加行。

有什么想法吗?

1 个答案:

答案 0 :(得分:7)

感谢此blog post中的评论(顺便提一下,它有一个非常有用的DTF自定义操作示例),我找到了Wix EnsureTable元素,这样就确保了一个表格出现在输出,即使它是空的。

所以为了让我的例子有用,我需要这样做:

<CustomTable Id="MyTable">
  <Column Id="Id" Type="string" Category="Identifier" PrimaryKey="yes"/>
  <Column Id="Root" Type="string"/>
  <Column Id="Key" Type="string"/>
  <Column Id="Name" Type="string"/>
</CustomTable>

<EnsureTable Id="MyTable"/>