かなり大きなプロジェクトで WiX (3.0.3815.0) を使用しています。ある種のソースからエラー要素を生成するコード生成を実行したいと考えています (目的: C でコンパイルされた CA と MSI の両方がエラー文字列を確認し、ID を知る必要があります)。私はこのようなものを生成します:
<?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 ファイルを使用するのと同じように使用します。candle.exe を呼び出して gen.wixobj を取得し、それを他の wixobj と共に light.exe に渡します。
問題: WiX は、結果の MSI エラー テーブルにエラー行を含めません (Orca で検証済み)。
醜い回避策: Error="28002" でカスタム アクションを追加すると、ファイル全体が MSI に含まれます。
これに詳しい人はいますか?醜くない解決策はありますか?