Ссылка на пользовательскую таблицу в файле фрагмента WiX - PullRequest
0 голосов
/ 14 июня 2011

Я хочу создать файл фрагмента, который будет содержать только CustomTable в этом файле.Это достаточно просто, но я не знаю, как связать / включить его обратно в основной файл product.wxs.

Файл фрагмента находится в том же проекте, что и файл продукта, и я также попытался безуспешно добавить тег включения для файла и даже поместить пользовательскую таблицу в файл включения WiX.1004 * Есть ли способ сделать это?Или это будет жить в файле продукта?

Ответы [ 2 ]

2 голосов
/ 14 июня 2011

Набор инструментов WiX компилируется и связывается аналогично компилятору C / C ++. Компоновщик начинается с «главной» точки входа (в вашем случае - элемента Product), затем следует оттуда оттуда, а затем оттуда следует отсылки, пока все не будут разрешены.

Часть вашего вопроса отсутствует, но по названию я собираюсь догадаться, что вам нужен элемент CustomTable. Как правило, CustomTable обрабатывается CustomAction. Есть несколько хороших способов сослаться на CustomAction.

Я бы не использовал бы включаемый файл.

0 голосов
/ 09 июля 2012

Вы можете попробовать использовать EnsureTable, если хотите убедиться, что таблица создана, независимо от того, есть ли в ней данные. Если вы хотите отделить определение схемы пользовательской таблицы от данных, я считаю, что вы можете просто определить их в отдельных фрагментах и ​​ссылаться на определение схемы из фрагмента определения данных, открыв с помощью <CustomTable Id="your table name"> и определив строки данных в нем.

В общем случае Wix не будет извлекать фрагменты в основной авторский проект, если они не содержат элементов, на которые есть ссылки, и поскольку в настоящее время нет такой вещи, как CustomTableRef, вы можете использовать другие элементы, такие как пустой PayloadGroup или ComponentGroup, на который вы можете ссылаться (используя PayloadGroupRef или ComponentGroupRef соответственно) из вашего основного элемента Bundle, Product или Module в зависимости от обстоятельств.

...