WixUiBannerBmp可以设置为wixlib吗?

时间:2011-06-14 10:56:17

标签: wix windows-installer wix3.5 wixlib

目前我正在尝试将WixUIBannerBmp,WixUIDialogBmp和WixUILicenseRtf WixVariables及其相应的二进制文件移动到wixlib。不幸的是,在构建它时会忽略这些并使用默认值。

我的图书馆.wxs:

<Fragment>
    <WixVariable Id="WixUILicenseRtf" Value="licence.rtf" />
    <WixVariable Id="WixUIBannerBmp" Value="binaries/bannrbmp.bmp" />
    <WixVariable Id="WixUIDialogBmp" Value="binaries/dlgbmp.bmp" />
</Fragment>

其中rtf和bmp文件包含在wixlib项目中,路径相对于Library.wxs文件。

任何人都有任何想法,为什么这不起作用?

由于

1 个答案:

答案 0 :(得分:6)

管理自己解决这个问题! :)

首先,片段不会自动包含在主Product.wxs中,除非明确引用了某些内容。在这种情况下,我正在使用ARPPRODUCTICON属性。如果你没有任何可以使用的东西,你可以添加一个永远不会被使用的虚拟属性。

然后,二进制文件的路径将不正确,因为路径将相对于Product.wxs文件。因此,您需要将Preprocessor变量用于当前项目路径。

Product.wxs

<Wix>
    <PropertyRef Id="ARPPRODUCTICON" />
</Wix>

Library.wxs

<Fragment>

    <WixVariable Id="WixUILicenseRtf" Value="$(var.ProjectDir)\adastra-licence.rtf" />
    <WixVariable Id="WixUIBannerBmp" Value="$(var.ProjectDir)\Bitmaps\bannrbmp.bmp" />
    <WixVariable Id="WixUIDialogBmp" Value="$(var.ProjectDir)\Bitmaps\dlgbmp.bmp" />

    <Property Id="ARPPRODUCTICON" Value="icon.ico" />
    <Icon Id="icon.ico" SourceFile="$(var.ProjectDir)/App.ico"/>

    <UIRef Id="WixUI_Common" />
</Fragment>