在不生成新组件guid的情况下对文件使用heat

时间:2013-10-29 17:20:50

标签: powershell wix heat

我们需要自动填充组件中的files-section。所以我们想要使用一个生成这样的文件部分的工具(这里是一个包含文件)

<include>
<File id=1" src="whatever" />
<File id=2" src="whatever2" />
<File id=3" src="whatever3" />
</include>

在wxs中,我们想要像

这样的东西
<component id="xxx" guid="myStaticGuid" permanent=yes">
<include file above>
</component>

在这种情况下,我们将始终使用相同的guid具有相同的组件,但只有一些其他文件符合Windows安装程序定义的规则。

在我的测试中,heat总是生成一个带有新guid的新组件,并且永久性标记永远丢失,所以我创建了一个powershell脚本来生成文件片段。但这对我来说看起来很难看。

热量是否有可能实现我的目标或如何只更新现有组件中的文件?

1 个答案:

答案 0 :(得分:1)

您可以在加热(-ag)上使用自动生成guids标志,这实际上将其设置为“*”。然后根据组件中的keypath(在您的情况下,文件)在编译时扩展它。如果文件永远不会更改,则编译器每次都会生成完全相同的GUID。

我不知道如何通过我头顶的热量来设置永久性标志,但你可以使用XSL变换来实现它,你可以传递给Heat。