在 WiX 中包含许多文件,但没有列出每个文件。

Posted

技术标签:

【中文标题】在 WiX 中包含许多文件,但没有列出每个文件。【英文标题】:Including many files in WiX without listing each one. 【发布时间】:2012-12-20 00:57:12 【问题描述】:

我正在编写一个使用 WiX 3.0 的 MSI,我试图弄清楚如何使它包含目录中除某些文件之外的所有文件,而无需手动指定每个属性。类似于 installshield 中的动态拾取。

我正在查看的旧安装程序(使用 WiX 2.0)执行以下操作:

    一个 makefile 调用一个脚本,将所有必要的文件复制到一个单独的目录结构,模拟最终产品的安装方式。 另一个脚本,用于将此临时文件夹中每个文件的属性插入到部分完成的 wxs 文件中。 WiX 运行

我想避免这一步,并想知道是否有一些命令或预处理器指令来实现这个 WiX 本身?

上面的第 1 步还会生成一些生成的文件(来自工具),然后将这些文件包含在 wxs 文件中。有没有办法我也可以效仿?

【问题讨论】:

寻找相同的,但你必须手动添加所有文件:( 【参考方案1】:

您需要指定每个文件。

但是,您可以使用Heat.exe 自动生成一个 wxs 文件,您可以将其包含在构建过​​程中。

【讨论】:

是否有关于如何制作典型“从头开始创建安装程序”场景的文档?我真的很喜欢 WiX,但是文档太少了,几乎不可能学习 WiX。 @ChristianSauer 不,不是很多!主要是一些教程的混合,以及有关 Windows Installer 的信息。 Heat 是你想要的,你可以将它放在 中的 .wixproj 文件中,将其输出到 .wxs 文件中,然后它应该被拾取(如果 .wxs 文件已经存在,所以先画一个基本的并将其添加到项目中)。 加热不会为每个文件生成一个组件吗?我的安装程序有 1000 个。 @royrules22 数千个组件是正确的解决方案。例如,在 Orca 中打开 Visual Studio 安装程序 :) @ChristianSauer 查看我对***.com/questions/923384/…的回答【参考方案2】:

我以非解决方案为代价,压缩了目录和构建脚本中的文件。您当前方法的优点是 MSI 知道这些文件,它们可能是关键文件(因此已修补/升级和/或修复)。

我会研究 saschabeaumont 关于使用热量的建议。显然是更好的解决方案

【讨论】:

以上是关于在 WiX 中包含许多文件,但没有列出每个文件。的主要内容,如果未能解决你的问题,请参考以下文章

在 GNU make 中列出定义中包含变量的目标/目标

GScript将同一文档中的多张图纸转换为单独的PDF,并将每个PDF发送到每张图纸的单元格B2中包含的电子邮件地址中

如何在运行时确定我的 WiX ManagedBootstrapperApplication 中包含的产品的 ProductCode?

Wix、Heat 和 Wxi 文件

在 C++ 项目中包含 .idl 文件

在每个源文件中包含一个头文件