Ich verwende WiX (3.0.3815.0) auf einem ziemlich großen Projekt. Ich möchte einige Codegenerierung machen, die Fehlerelemente aus irgendeiner Art von Quelle erzeugen wird (Zweck: Beide C-kompilierten CAs und MSI müssen die Fehlerzeichenfolgen sehen und über die IDs Bescheid wissen). Ich erzeugen so etwas wie dieses:WiX löscht Fragmente mit nur Fehler-Elementen, wenn nicht durch benutzerdefinierte Aktionen referenziert
<?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>
Während bauen, ich benutze es, wie ich meine anderen .wxs Dateien verwenden: Rufen Sie candle.exe und gen.wixobj, und dann übergeben Sie es mit meinen anderen light.exe zusammen wixobjs.
Problem: WiX enthält die Fehlerzeilen in der resultierenden MSI-Fehlertabelle nicht (validiert mit Orca).
Hässliche Problemumgehung: Fügen Sie eine benutzerdefinierte Aktion mit Error = "28002" hinzu - dann wird die gesamte Datei in das MSI aufgenommen.
Jemand damit vertraut? Jede weniger hässliche Lösung?