1

かなり大きなプロジェクトで 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 に含まれます。

これに詳しい人はいますか?醜くない解決策はありますか?

4

1 に答える 1

2

UIRef 要素は、まさにこの種のもののために追加されました。UI/@Id 属性を追加し、CustomAction 定義を含むフラグメントに一致する @Id を持つ UIRef 要素を追加します。

于 2009-06-22T23:29:02.027 に答える