首页 > 解决方案 > wixlib 中的二进制记录

问题描述

我的每个安装程序都使用某些临时 exe 和 dll。在我的 WiX 项目中,我可以将它们放在二进制表中。由于它们在所有项目中共享,是否可以将它们放入 wixlib 中?语法是什么。

我正在使用 PropertyRef 属性对属性做类似的事情。没有对应的 BinaryRef 属性可以对 Binary 表执行相同的操作。

标签: wixwixlib

解决方案


没有对应的 BinaryRef 属性可以对 Binary 表执行相同的操作。

对于没有对应 *Ref 元素的元素,您可以使用以下解决方法:

  • 在片段中创建一个空ComponentGroup元素(这是有效的 WiX 代码)。
  • ComponentGroupRef在要引用的位置插入元素Fragment。这会引入 的全部内容Fragment,而不仅仅是ComponentGroup.

例子:

<Fragment>
    <ComponentGroup Id="MyBinaries"/>
    <Binary Id="Binary1" SourceFile="Files\Binary1.xyz"/>
    <Binary Id="Binary2" SourceFile="Files\Binary2.xyz"/>
</Fragment>

要从另一个 .wxs 文件引用 MyBinaries:

<Fragment>
    <ComponentGroup Id="SomeComponents">
        <ComponentGroupRef Id="MyBinaries"/>
    </ComponentGroup>
</Fragment>

推荐阅读