Генерация ComponentGroups ComponentRefs - PullRequest
5 голосов
/ 21 марта 2011

Итак, я пытаюсь использовать высокую температуру для создания фрагментов для файлов в моем проекте. Глядя на файлы, которые я сгенерировал в прошлом, и различные статьи по WiX со всей сети, я вижу, что у меня есть фрагменты каталога / компонента, а затем фрагмент, определяющий группу компонентов с использованием ComponentRef.

<Fragment>
    <DirectoryRef Id="dir0D9F6D272B6344EBFCF7EED0D14AA801">
        <Component Id="cmp0BA12DCC33EB11DEB149261CF6904AAE" Guid="392C95D2-37C1-464E-9979-3E9D2BF57FEE">
            <File Id="filB95C5D2C0575B59E63201E24176D55FB" KeyPath="yes" Source="SourceDir\something.dll" />
        </Component>
        <Component Id="cmp895927B450519C5487FDEC914051E715" Guid="DDC12130-C5D5-4727-95D8-660F7229BBD7">
            <File Id="fil8C5E22B3AFE9AA6056E1458BD93E3646" KeyPath="yes" Source="SourceDir\whatever.dll" />
        </Component>
</Fragment>
<Fragment>
    <ComponentGroup Id="SampleProduct">
        <ComponentRef Id="cmp0BA12DCC33EB11DEB149261CF6904AAE" />
        <ComponentRef Id="cmp895927B450519C5487FDEC914051E715" />
    </ComponentGroup>
</Fragment>

Разве Heat не должен генерировать этот фрагмент ComponentGroup? Или я сделал это вручную и забыл, что сделал? Различные примеры Heat, которые я нахожу в Интернете, указывают на то, что Heat действительно генерирует этот фрагмент.

Я делаю что-то вроде: Heat Dir. -gg -g1 -cg WhatThe -out test.wxs

, который производит фрагменты ComponentGroup / Component - ни одного компонента ComponentRef, который будет найден:

<Fragment>
    <ComponentGroup Id="WhatThe">
        <Component Id="cmp9BDA89E67E0D566068C97D3FA3AEBE70" Directory="dir54021DE1C7E3016732B498A5B2680893" Guid="392C95D2-37C1-464E-9979-3E9D2BF57FEE">
            <File Id="filDE3AEB1672B47F4803B1EDAB6016DDD3" KeyPath="yes" Source="SourceDir\something.dll" />
        </Component>
        <Component Id="cmpA8D6F6019E02CAD0DDA17E2F285D7EC8" Directory="dir54021DE1C7E3016732B498A5B2680893" Guid="DDC12130-C5D5-4727-95D8-660F7229BBD7">
            <File Id="filDB325609DF363696B3F5E8D1FC22D4C5" KeyPath="yes" Source="SourceDir\whatever.dll" />
        </Component>
    </ComponentGroup>
</Fragment>

Чего мне не хватает? Кроме среднесрочной памяти?

Спасибо

1 Ответ

6 голосов
/ 21 марта 2011

Добавление флага -sfrag в командную строку heat.exe даст желаемый результат.

heat dir . -gg -g1 -sfrag -cg WhatThe -out test.wxs
...