为什么使用WiX时我的MSI图像看起来会损坏?

10

我为由WiX生成的MSI设置自定义横幅和对话框图像。

<WixVariable Id="WixUIBannerBmp" Value="./build/msi/InstallerBanner.jpg" />
<WixVariable Id="WixUIDialogBmp" Value="./build/msi/InstallerDialog.jpg" />

由于某种原因,当构建成MSI时,图像会变得损坏。我已经将两张图片添加到我的问题中进行比较。我尝试过使用各种压缩类型的BMP和JPEG格式 - 它们看起来完全相同。我可以验证我正好使用了正确的图像尺寸(500 x 63像素)。

这是原始图像: 原始图像 http://img193.imageshack.us/img193/7016/installerbanner.jpg

这是在MSI中的效果: 使用中的图像-1 http://img26.imageshack.us/img26/2996/bannerinuse.jpg

更新:

感谢您的答案,我从教程中获得了错误的尺寸信息,那实际上非常过时并且(显然)非常不准确。尽管如此,它是一个很好的黑客资源。我以后会遵循手册。


1
不知道你尝试过使用 PNG 格式吗?这是我一直在用的格式,从未出现过问题。 - user1228
1
WiX不支持PNG格式(仅支持BMP和JPEG)。 - Nick Bolton
5个回答

12

你的图像尺寸太大。横幅图像必须是493×58,而你的图像是500×63,导致它被调整大小。

请查看自定义内置WixUI对话框集

顺便说一句:很高兴看到Synergy2终于更新了!


1
谢谢!是的,我已经连续几个月在项目上努力了,我认为事情正在开始进展。希望你有机会尝试一下。无耻的宣传警报!http://code.google.com/p/synergy-plus/ - 你可能想看看问题。再次感谢。 - Nick Bolton

6

安德鲁说的没错,这在wix.chm中有涵盖。

那些尺寸是错误的。根据相关的wix文档主题

替换默认位图

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

变量名称/描述/尺寸:

  • WixUIBannerBmp / 顶部横幅 / 493×58
  • WixUIDialogBmp / 在欢迎和完成对话框上使用的背景位图 / 493×312
  • WixUIExclamationIco / WaitForCostingDlg上的感叹号图标 / 32×32
  • WixUIInfoIco / 取消和错误对话框上的信息图标 / 32×32
  • WixUINewIco / BrowseDlg上的按钮符号 / 16×16
  • WixUIUpIco / BrowseDlg上的按钮符号 / 16×16

1
我发现,在WiX 3.5中自定义WixUIDialogBmp时,其尺寸必须为493x312像素。因此,为了使横幅只出现在对话框框左侧的164个像素中,请使用白色像素填充右侧的329个像素。然后它应该能正确显示。

1
使用WiX ver. 3.7.1224.0(2012年12月),我需要创建一个616×390的图像来填充对话框并避免拉伸。对话框文本左侧的空白区域宽度为234像素。
横幅仍然是493×58。

1
我认为这可能是由于您显示器上的缩放设置。616 = 493 * 1.25,390 = 312 * 1.25。我们是否需要为不同的比例提供不同的图像? - David Jones - iPushPull

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接