7

我发现 Wix v3 使用工具 (heat.exe) 将信息“收集”到 WiX 片段中。要么我在寻找错误的位置,要么这是很少记录的。

为包含媒体文件的复杂文件夹结构自动生成 WiX 片段(可能使用 heat.exe)的最佳方法是什么:

  • 各种类型(ico/png/xaml/等)
  • 这可能会定期更改(名称/位置/添加/删除)
  • 被归类为“内容”并包含在 .csproj 中

这样它们可以通过 WiX 内置到安装程序中,并且可以承受升级和补丁吗?

背景资料

  1. 我找到了 heat.exe,它似乎解决了自动生成 WiX 片段的要求
  2. 在让“dir”收割机工作时,我注意到“project”收割机(命令行帮助)
  3. 媒体已经在 C# 项目文件中,因此注意到“-pog:Content”可能会做得很好
  4. 粗略搜索发现未提及“项目”收割机的过时文档
  5. 意识到整个项目安装程序可能可以使用“项目”收割机完成,但不确定它的支持程度以及陷阱是什么。
  6. 看到“PUT-GUID-HERE”的生成,并意识到 guid 的自动生成可能会影响升级/补丁。
  7. 意识到必须有人将这些工具用于类似目的,并且可能会为我指明正确的方向。

(公平地)指出 v3 尚未“完成”(因此缺乏文档和教程)。我现在得到的感觉是,在我的构建脚本中自动执行此操作并非易事,而且工具正在不断增长以简化此操作。

4

4 回答 4

2

以我的经验,John Robbins 的Paraffin解决了tallow.exe(v3 中的heat.exe)的很多问题。我不确定 Paraffin 是否与 v3 配合得很好,但可能值得一试。

仅供参考,我在构建过程中使用了石蜡,它允许我删除之前涉及 powershell 脚本的 2-3 步清理过程。

于 2009-04-14T11:10:12.687 回答
1

有关自动生成的设置的升级影响,请阅读此。带回家的消息:

Windows Installer 不允许您在次要升级中删除组件

如果您自动生成设置,则很难保证组件继续存在。因此,您必须在自动生成组件和进行小升级之间做出选择。

如果您有一些自动生成的组件,那么只需进行重大升级。您可以使用Rob 的这个示例作为示例。

于 2009-04-14T10:51:03.230 回答
0

感谢您的背景,我不知道他们正在开发新版本的 Wix。根据项目页面,它还不是 RTM,所以这可以解释你遇到的问题。我希望在其中一个回复中听到 WIX 开发人员的意见。

我无法帮助您使用开发中的 heat.exe 功能。但是,我遇到过你的情况,我的解决方案是创建一个工具,将目录和文件信息作为输入并生成有效的 wix 项目文件作为输出。.vsproj 文件只是一个 XML 文件,您可以使用 XSL、C# 的 LINQ、PowerShell 或许多其他工具来完成这项工作。为此,我个人已经使用(LINQ 之前的)C#/XMLDOM 来解析 VS 项目文件。

祝你好运,

戴夫

于 2009-04-13T23:00:14.657 回答
0

有关文档,请查看随 WiX 安装的帮助文件 - WiX.chm提供最新信息(以及命令行-help选项)。

于 2009-04-14T00:44:11.007 回答