我在一个相当大的项目中使用 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,然后将其与其他wixobjs 一起传递给light.exe。
问题:WiX 不包含生成的 MSI 错误表中的错误行(使用 Orca 验证)。
丑陋的解决方法:使用 Error="28002" 添加自定义操作 - 然后整个文件将包含在 MSI 中。
有人熟悉这个吗?有什么不那么难看的解决方案吗?