在WiX片段文件中引用自定义表

时间:2011-06-14 13:53:42

标签: visual-studio-2010 wix wix3.5

我想创建一个只包含文件中的CustomTable的片段文件。这很容易,但我不知道如何将其链接/包含回主product.wxs文件中。

片段文件与产品文件位于同一项目中,我也尝试为文件添加包含标记但未成功,甚至将自定义表放入WiX包含文件。

有办法做到这一点吗?或者它是否必须存在于产品文件中?

2 个答案:

答案 0 :(得分:2)

WiX工具集以与C / C ++编译器类似的方式编译和链接。链接器从“主”入口点(在您的情况下是Product元素)开始,然后跟随那里的引用,然后从那里开始引用,直到所有引用都被解析。

你的部分问题遗失了,但根据标题,我猜你想要一个CustomTable元素。通常,CustomTableCustomAction处理。有几种很好的方法可以引用CustomAction

使用包含文件。

答案 1 :(得分:0)

如果您要确保创建表是否存在数据,则可以尝试使用EnsureTable。如果您想将自定义表的模式定义与数据分开,我相信您可以在单独的片段中定义它们,并通过打开<CustomTable Id="your table name">并在其中定义数据行来引用数据定义片段中的模式定义它

一般来说,Wix不会将片段拉入主要作者,除非它们包含在某处引用的元素,并且由于目前没有CustomTableRef这样的东西,您可以选择使用其他元素,例如空{您可以在主PayloadGroupComponentGroup或{{1}中引用的{1}}或PayloadGroupRef(分别使用ComponentGroupRefBundle)视情况而定的元素。