1

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

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

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 是独一无二的。

我想知道如何避免这种情况或任何替代方法。

4

2 回答 2

1

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

最后一件小事。小心使用-gg带热量的开关。每次运行该工具时,它都会为您的组件生成新的 GUID。一旦这些组件发货,这是不允许的,因为这再次违反了组件规则。我建议使用-ag开关来让自动 GUID 机制负责正确管理您的 GUID。

于 2013-05-03T15:22:32.090 回答
0

我面临的问题是 3 个 reg 文件具有重复的密钥,这导致与 heat 工具相同的组件 ID。

reg 文件中的键应该是唯一的才能工作。

于 2013-05-09T09:07:04.237 回答