1

我正在将我们当前的整体安装程序转换为使用 WiX 3.7 捆绑包/链。我们有几个组件现在正在构建到它们自己的可单独维护的 MSI 安装程序中。我的下一个任务是将所有这些添加到引导加载程序/引导链程序中,但我遇到了障碍。

我们个人安装程序的一个要求是它们在文件名中包含版本(即 MyApplication-5.4.22.msi)。我没有看到像 Heat 这样的工具可以将 MSI 包收集在一起,我也没有看到添加带有通配符的 MsiPackage 元素来解释不同包名称的方法。

作为最后的手段,我可​​以将捆绑器包装在另一个 MSBuild 脚本中,该脚本将“自动完成”文件名并将路径作为变量传递给捆绑器。我希望有人可以推荐一个直接在 wxs 或 wixproj 设置中工作的解决方案。

4

1 回答 1

1

如果 msi 文件是使用 WiX 设置项目构建的,则 WiX Bootstrapper 项目可以引用它们,从而创建有用的 WiX 变量,这些变量被定义为 msi 文件的路径。

在此处查看我的答案,以及此处的变量列表。

如果不是这种情况,那么您可以编写一些在 Build 目标之前运行的 MSBuild 目标,以找出实际的文件路径。如果可用的标准和社区 MSBuild 任务不够用,您可以编写自己的任务,方法是创建程序集或使用内联代码。(当然,总有Exec任务可以输出到像 cmd.exe 这样的命令行程序,之后您可以解析其输出以提取 msi 路径。)

于 2013-09-08T00:02:16.613 回答