2

我有一个包含大量文件的项目。在我们的软件版本之间,会添加新文件并删除一些文件。因此,在自动化我们的构建过程中,我想让 heat 自动生成一个.wxs文件(我们称之为files.wxs)。

但是还有一些手动生成的项目,比如<product>元素及其相关版本和<environment>我们需要设置的环境变量标签。这些永远不会改变(除了增加的版本号)。现在,我已经把所有这些都放在一个名为product.wxs.

我怎样才能最好地将它们组合成一个 .msi?我是否需要在文件中自动生成的每个片段的<component>元素内创建一个元素?如果是这样,那就违背了自动生成该文件的目的。我希望有另一种方法。<product>files.wxs

帮助!提前致谢。

4

1 回答 1

2

我工作的安装程序有手动和热生成代码,我们的处理方式是:

一个脚本构建目标文件结构,即将安装的所有文件都复制到一个临时目录,模仿它们在目标机器上的结构

Heat.exe 然后在该目录结构上执行并输出到文件。

然后我们应用一些转换,因为我们的安装程序中有多个功能(尽管如果您的安装程序只是一个功能,您可以使用由 Heat.exe 创建的单个 ComponentGroup),转换根据目录结构将组件分组为 ComponentGroups。

手册文件仅引用 ComponentGroups。

如果添加或删除文件,则在脚本上完成工作(如有必要,脚本的一部分只是舀整个目录)。构建安装程序时,会自动为该文件生成一个新组件,并通过转换将其添加到适当的组中。无需任何工作,因为该组已在手册文件中引用。

于 2014-07-09T19:43:27.383 回答