目前我正在尝试将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文件。
任何人都有任何想法,为什么这不起作用?
由于
答案 0 :(得分:6)
管理自己解决这个问题! :)
首先,片段不会自动包含在主Product.wxs中,除非明确引用了某些内容。在这种情况下,我正在使用ARPPRODUCTICON属性。如果你没有任何可以使用的东西,你可以添加一个永远不会被使用的虚拟属性。
然后,二进制文件的路径将不正确,因为路径将相对于Product.wxs文件。因此,您需要将Preprocessor变量用于当前项目路径。
<Wix>
<PropertyRef Id="ARPPRODUCTICON" />
</Wix>
<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>