我正在为多个注册表文件运行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是独一无二的。
我想知道如何避免这种情况或任何其他方式。
答案 0 :(得分:1)
Component/@Id
应该基于所包含的注册表项的完整“路径”。因此,如果.reg文件中有两个注册表项(可能有也可能没有不同的值),那么最终会有重复的Component/@Id
属性。这很重要,因为在两个不同的组件中使用相同的注册表项也会破坏Component Rules。
最后一件小事。加热时使用-gg
开关要小心。每次运行该工具时,它都会为您的组件生成新的GUID。一旦这些组件发布,则不允许这样做,因为它将再次违反组件规则。我建议使用-ag
开关,让auto-GUID机制正确管理您的GUID。
答案 1 :(得分:0)
我遇到的问题是3个reg文件有重复的密钥,导致使用加热工具导致相同的组件ID。
reg文件中的键应该是唯一的,以便工作。