WiX:如何混合手工生成和自动生成的.wxs内容?

时间:2014-07-09 16:59:50

标签: wix windows-installer auto-generate wix3.8

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

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

我怎样才能将它们组合成一个.msi?我需要创建一个<组件> <里面的元素产品>在“files.wxs”文件中自动生成的每个片段的元素?如果是这样,那种失败了自动生成该文件的目的。我希望还有另一种方式。

帮助!提前谢谢。

1 个答案:

答案 0 :(得分:2)

我工作的安装程序包含手动和热量生成的代码,我们的处理方式如下:

脚本构建目标文件结构,即将要安装的所有文件都复制到临时目录,模仿目标计算机上将具有的结构

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

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

手动文件仅引用ComponentGroups。

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