Heat Harvest Tool注册表文件的组件ID重复

时间:2013-05-03 10:27:13

标签: wix wix3.5 wix3.6 heat

我正在为多个注册表文件运行Heat Harvest工具(45)我有一个循环来生成wxs文件。

除了生成相同组件ID 的3个文件外,它运行良好。

heat reg MyReg.reg -cg compoentGroup -gg -o MyReg.reg.wxs
heat reg MyReg1.reg -cg compoentGroup1 -gg -o MyReg1.reg.wxs
heat reg MyReg2.reg -cg compoentGroup2 -gg -o MyReg2.reg.wxs

相同的组件ID
<Component Id="cmp0278C3EF60DDFA362D50D5DD0254BCB9" Directory="TARGETDIR" Guid="{EED2941A-01BD-4CE5-97BF-75F19B6605A6}" KeyPath="yes">

虽然Guid是独一无二的。

我想知道如何避免这种情况或任何其他方式。

2 个答案:

答案 0 :(得分:1)

Component/@Id应该基于所包含的注册表项的完整“路径”。因此,如果.reg文件中有两个注册表项(可能有也可能没有不同的值),那么最终会有重复的Component/@Id属性。这很重要,因为在两个不同的组件中使用相同的注册表项也会破坏Component Rules

最后一件小事。加热时使用-gg开关要小心。每次运行该工具时,它都会为您的组件生成新的GUID。一旦这些组件发布,则不允许这样做,因为它将再次违反组件规则。我建议使用-ag开关,让auto-GUID机制正确管理您的GUID。

答案 1 :(得分:0)

我遇到的问题是3个reg文件有重复的密钥,导致使用加热工具导致相同的组件ID。

reg文件中的键应该是唯一的,以便工作。