WiX отбрасывает фрагменты только с элементами Error, если пользовательские действия не ссылаются на них - PullRequest
1 голос
/ 22 июня 2009

Я использую WiX (3.0.3815.0) в довольно большом проекте. Я хочу выполнить генерацию кода, которая будет генерировать элементы Error из какого-либо источника (цель: и CA, скомпилированные C, и MSI должны видеть строки ошибок и знать об идентификаторах). Я генерирую что-то вроде этого:

<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
  <Fragment>
    <UI>
        <Error Id="28002"><![CDATA[bla bla bla]]></Error>
        <Error Id="28003"><![CDATA[bli bli bli]]></Error>
(Lots more...)
    </UI>
  </Fragment>
</Wix>

Во время сборки я использую его так же, как и другие мои файлы .wxs: вызываю свечу и получаю gen.wixobj, а затем передаю его в light.exe вместе с другими моими wixobjs.

Проблема: WiX не включает строки ошибок в итоговую таблицу ошибок MSI (проверено с помощью Orca).

Уродливый обходной путь: добавьте настраиваемое действие с ошибкой = "28002" - тогда весь файл будет включен в MSI.

Кто-нибудь знаком с этим? Любое менее уродливое решение?

1 Ответ

2 голосов
/ 23 июня 2009

Элемент UIRef был добавлен только для такого рода вещей. Добавьте атрибут UI / @ Id и добавьте элемент UIRef с соответствующим @Id во фрагменте, который включает в себя ваше определение CustomAction.

...