2

目前我正在尝试将 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 文件。

任何人都知道为什么这不起作用?

谢谢

4

1 回答 1

7

设法自己解决了这个问题!:)

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

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

产品.wxs

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

图书馆.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>
于 2011-06-14T12:55:48.770 回答