【问题标题】:Heat harvest Payload for ExePackageExePackage 的热量收集有效载荷
【发布时间】:2014-10-02 17:50:39
【问题描述】:

我有一个压缩文件(自解压),它作为我正在处理的当前 BootStrapper 项目的 ExePackage 包含在内。

我被要求在将它包含在 BootStrapper 之前解压缩包,这样最终用户就不必在开始该包的安装过程之前解压缩文件。

不包括安装应用程序,有两个文件夹(win32 && win64),每个文件夹包含 288 个文件,我需要从这些文件中创建一个 PayloadGroup。我开始是手工做的,但是看了Heat element之后发现Heat可以生成Payloadgroup。

如何从目录中获取此包所需的有效负载组。

手动操作是一个非常漫长的过程......

【问题讨论】:

    标签: wix heat


    【解决方案1】:

    如果使用 Visual Studio,您应该能够进入安装项目的引用并单击有问题的引用并将 Harvest 设置为 true。

    如果我记得这有一些问题,并且一些在线消息来源说这对他们不起作用,我目前不确定。这就是为什么我在构建后事件中从命令行调用 heat 的原因。像这样的:

    call "$(WIX)bin\heat.exe" dir "$(TargetDir)." -var var.$(ProjectName).TargetDir -dr INSTALLFOLDER -cg Binaries -gg -g1 -ag -scom -sreg -sfrag -srd -o "$(SolutionDir)Setup$(ProjectName)\$(ProjectName).Binaries.wxs"
    

    您甚至可以指定一个 XSLT 转换来过滤您生成的 wxs 文件。更多信息请查看this helpful blog post

    【讨论】:

    • Zip 文件不包含在 BootStrapper 中,该链接显示了如何从项目中创建组件并消除您不希望包含的部分。所以我应该创建一个 xslt 文件,将 Harvest of the Directory 转换为创建 Payload.wxs 的文件?
    • 您是说 zip 文件不在您解决方案的项目中吗?在这种情况下,我会将其解压缩到属于您解决方案的一部分的文件夹中,并将 heat 命令指向该目录。在它生成一个 wxs 文件后,从你的主 wxs 文件中引用组件组,它将加载到你的文件的组件中。
    • 所以组件成为了 ExePackage 的负载?
    • 根据wixtoolset.org/documentation/manual/v3/overview/heat.html可以使用-generate指定payloadgroup。如果这不起作用,您可以按照此处的建议进行搜索和替换 windows-installer-xml-wix-toolset.687559.n2.nabble.com/…
    • 是的,我看到了那个帖子,但确信从那时起,生成 Payloadgroup 就可以工作了……我猜不是。感谢您的帮助。
    【解决方案2】:

    我在 v4.0 (https://github.com/wixtoolset/issues/issues/3470) 中实现了heat.exe dir -generate payloadgroup。在 v3.x 中,-generate 选项仅受项目收获 (heat.exe project ...) 支持。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-01
      • 2016-03-04
      • 1970-01-01
      • 2020-04-26
      • 1970-01-01
      • 2023-01-05
      • 2020-05-14
      相关资源
      最近更新 更多