2013-05-03 4 views
1

Я запускаю инструмент Heat Harvest для нескольких файлов реестра (45) У меня есть над циклом для создания файла wxs.Утилита Heat Harvest Tool для дублирования файлов реестра

Он хорошо работает, за исключением 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

Пожалуйста, игнорируйте этот вопрос. Я обнаружил, что в тех местах, где я получаю дубликат Component Id, эти рег-файлы создают одинаковые ключи. – Gurinder

+0

Думаю, вы должны ответить на этот вопрос, если это поможет кому-то другому. –

ответ

0

Проблема, с которой я столкнулся, состояла из 3 реестров, имеющих дублирующие Ключи, которые вызывали тот же самый компонентный идентификатор с помощью теплового инструмента.

Ключи в файлах регистров должны быть уникальными для этого.

1

Component/@Id должен основываться на полном «пути» к содержащемуся разделу реестра. Итак, если у вас есть два ключа реестра в ваших .reg-файлах (которые могут иметь или могут не иметь разных значений), вы получите дубликаты атрибутов Component/@Id. Это важно, поскольку наличие одного и того же раздела реестра в двух разных компонентах также разбивает Component Rules.

One last мелкий предмет. Будьте осторожны при использовании переключателя -gg с нагревом. Каждый раз, когда вы запускаете инструмент, он генерирует новые GUID для ваших компонентов. Это не допускается, если эти компоненты будут отправлены, потому что снова это будет нарушением правил компонентов. Вместо этого рекомендуется использовать переключатель -ag, чтобы механизм авто-GUID правильно управлял вашими GUID.

+0

Я попробовал вариант -ag раньше; это дает мне ошибку LGHT0203. Пример '<Идентификатор компонента =" cmp1245F94D305F9661213141CB2746BF7D "Directory =" TARGETDIR "Guid =" * "KeyPath =" yes ">' Я не уверен, как решить эту проблему. – Gurinder

+0

Вам нужно, чтобы элемент 'RegistryXxx' был 'KeyPath' не' Компонент'. Возможно, проблема связана с выходом тепла. –

+0

Я пробовал использовать Wix 3.5, Wix 3.6 и Wix 3.7. Это то же самое. – Gurinder

 Смежные вопросы

  • Нет связанных вопросов^_^