【问题标题】:WiX 3.0 Merge Module: meaning of Source attributeWiX 3.0 Merge Module:Source 属性的含义
【发布时间】:2010-05-17 10:12:25
【问题描述】:

Source 属性的用途是什么?看看这个sn-p:

<Component Id="MyComponent" Guid="123456789-abcd-defa-1234-DCEA-01234567890A">
          <File Id="myFile" Name="myFile.dll" Source="myFile.dll"/>
</Component>

既然 Name 和 Source 具有相同的值,那么 Source 添加了什么?没有它,代码无法编译。

在哪里可以找到解释这些属性的文档?我已经为 MSI 尝试过 MSDN,但没有找到答案。

谢谢。

【问题讨论】:

    标签: installation wix windows-installer wix3


    【解决方案1】:

    WiX 和 MSI 不一样。因此在 MSDN 文档中没有参考 ;)

    您需要参考安装 WiX 的 WiX.CHM 或online WiX documentation。

    假设您正在谈论File/@Name 和File/@Source,如果您的源文件的布局方式与您的 WiX 目录结构相同,则这是可选的。

    当您在File/@Source 属性中对light 和SourceDir 使用多个-b 参数时,漂亮的部分就出现了。比如……

    <File Id="example.dll" KeyPath="yes" Source="SourceDir\example.dll" DefaultLanguage="0" />
    

    我通常在标准版本中指定 4 个带有 -b 的文件夹。一种用于各种安装程序特定资源,一种用于存储合并模块的位置,一种用于我所有安装之间的公共资源,另一种用于我的源文件。现在,WiX 将在命令行中指定的每个目录中查找,如果我在具有不同目录布局的不同系统上构建,这会使事情更加便携。

    根据documentation,如果(在您的示例中)myfile.dll 在当前目录中,您可以省略File/@Source 属性。

    【讨论】:

      【解决方案2】:

      File/@Source 提供位置以获取有关文件的信息(大小、语言、哈希)并将其复制到正确的位置(在文件柜中或放置在相对于 MSI 文件的目录中)。

      如果您不想使用其他名称安装文件,则文件/@Name 是可选的。换句话说,如果该文件在您的构建机器上以正确的名称存在,只需使用 File/@Source 引用它并省略 File/@Name。

      File/@Id 也是可选的,只要您的文件名是唯一的。您不能有两个具有相同 File/@Id 的文件,因此在发生冲突时添加 File/@Id。

      在 WiX v3.5 中,我经常这样做:

      <Component> <File Source="my.exe"/> </Component>

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多