生成 WIX 创作文件以在单个组件下包含多个文件

Generate WIX authoring files to contain multiple files under a single component

我们正在使用 heat 可执行文件生成一个创作文件,其中为每个文件创建了一个唯一的组件。有没有办法在单个组件下包含多个文件。

预期结果:

<component Id="samplecomponent"  Directory="INSTALLFOLDER" Guid="*">
   <File Id="file1.txt" Source="$(var.Sourcedir)\file1.xml" />
   <File Id="file2.txt" Source="$(var.Sourcedir)\file2.xml" />
   <File Id="file3.txt" Source="$(var.Sourcedir)\file3.xml" />
</Component>

Paraffin 3.131 版本可以帮助您为每个组件创建多个文件,但请阅读下面的免责声明(以及上面评论中的 link)。

应该注意的是,Paraffin 可能出于充分的理由弃用了此功能(据我所知,在 WiX 自己的 heat.exe 中从未见过),因为它往往会进行较小的升级和修补几乎无法使用。这与 MSI 的整体复杂性有关——尤其是在升级方面。 Paraffin 弃用该功能也可能有其他原因,例如维护起来太复杂。我不知道。

我总是喜欢每个组件一个文件 - 它避免了各种问题(patchingupgradesself-repairetc...)。以下是一些技术细节:Change my component GUID in wix?

但是,Santhosh has problems with a package that is so large that its installation performance is too slow, even after having applied a number of tricks to speed it uplimit costinguse admin image 等... - 请参阅 link)。在这种情况下,我首选的替代方法是将包拆分为多个 MSI 文件,然后使用引导程序依次安装它们——例如使用 WiX 的 Burn 引导程序。当然,这并不总是可以接受的。有时单个 MSI 至关重要。