Wixlib 中的二进制记录

Binary record in a wixlib

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

我正在使用 PropertyRef 属性对属性执行类似的操作。没有相应的 BinaryRef 属性来对 Binary table.

做同样的事情

There is no corresponding BinaryRef attribute to do the same with the Binary table.

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

  • 在片段中创建一个空的 ComponentGroup 元素(这是有效的 WiX 代码)。
  • 在要引用 Fragment 的位置插入 ComponentGroupRef 元素。这将提取 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>