在Wix 3.5中覆盖横幅图像Wixlib在实际的MSI中不起作用

时间:2011-07-22 20:17:09

标签: wix wix3.5 wixlib

我正在使用多篇文章和其他问题来覆盖我在20多个其他安装程序中使用的二进制wixlib的横幅位图图像。该库提供了我们自己的自定义UI,一些自定义对话框,公共资源,二进制文件,自定义操作等。

以下是我在wixlib中用来覆盖图像的代码:

    <Binary Id="WixUI_Bmp_Banner" SourceFile="Bitmaps\bnnrbmp.bmp/>
    <Binary Id="WixUI_Bmp_Dialog" SourceFile="Bitmaps\dlgbmp.bmp/>

但是当我在我的实际MSI项目中引用我的wixlib时,除了UI横幅图像覆盖(我的自定义对话框触发,进程工作,常见二进制文件安装等)之外,一切正常。在我的二进制wixlib项目中,我需要做些什么特别的事情来覆盖我自己的二进制wixlib中的UIExtension.wixlib默认图像?

我在这里看到了这个问题:Can WixUiBannerBmp be set in a wixlib?,然而这个问题的答案没有回答这个问题,它直接与一个图标有关,我不确定这个人是否正在使用二进制wixlib(re -distributable)。我在wixlib中嵌入的添加/删除程序图标已经正常工作。

1 个答案:

答案 0 :(得分:14)

图像是通过绑定时变量指定的,而不是二进制元素。您的.wixlib可以包含变量值。 Can WixUiBannerBmp be set in a wixlib?中使用的方法不使用.wixlib,但在其他方面是相同的。 (.wixlib只是.wixobj文件的集合。)

WiX帮助文件记录了“自定义内置WixUI对话框集”中的变量:

替换默认位图

WixUI对话框库包含欢迎和完成对话框背景的默认位图以及其他对话框的顶部横幅。您可以使用自己的位图替换这些位图以用于产品品牌。要替换默认位图,请使用位图的文件名指定WiX变量值,就像更换默认许可证文本一样。

示例:

<WixVariable Id="WixUIBannerBmp" Value="banner.bmp" />
<WixVariable Id="WixUIDialogBmp" Value="dialog.bmp" />