wix и heat настраивают папку установки

Я работаю с WiX, и я бы включил файлы и другую папку в мой установщик.

На самом деле у меня есть этот проект. Wixproj:

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 ...
  <ItemGroup>
    <Compile Include="wixfile1.wxs" />
    <Compile Include="wixfile2.wxs" />
  </ItemGroup>
  <Import Project="$(WixTargetsPath)" />
...

И два файла.wxs (wixfile1.wxs):

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    ...

        <Directory Id="TARGETDIR" Name="SourceDir">
            <Directory Id="WINDOWSVOLUME">
                <Directory Id="test" Name="test" >
                    <Directory Id="APPLICATIONROOTDIRECTORY" Name="Application test"/>
                </Directory>
            </Directory>
        </Directory>


        <DirectoryRef Id="APPLICATIONROOTDIRECTORY">
            <Component Id="myimg.png" Guid="7435781f-2bf1-4f1b-8376-754c2d4dac68">
                <File Id="myimg" Source="C:\imglol.png" KeyPath="yes" Checksum="yes"/>
            </Component>

        </DirectoryRef>


        <Feature Id="myimg" Title="Main image" Level="1">
            <ComponentRef Id="myimg.png" />
        </Feature>
    </Product>
</Wix>

И, например, wixfile2.wxs, которые генерируются командной строкой heat. Я бы развернул всю папку с именем "API".

<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    <Fragment>


        <DirectoryRef Id="TARGETDIR">
            <Directory Id="dirA4F7A43D3DBF467AC127F1422D00240E" Name="API">
                <Component Id="cmpCCEB1A915DCA242C688E53A21CE3C3CD" Guid="{}">
                    <File Id="fil0507E8B9603778F116316274B82F92D9" KeyPath="yes" Source="SourceDir\Library.Def.xml" />
                </Component>
                <Component Id="cmp4D36C9F3F381088827D9A606380954B9" Guid="{}">
                    <File Id="fil1E594FEBC557E93E0B15FC1DC3DE315F" KeyPath="yes" Source="SourceDir\APPli.CFG" />
                </Component>
                <Component Id="cmpF940CA5BFB57C855744EC0E727B0B13E" Guid="{}">
                    <File Id="fil5488939102DA1D694DFD42512F2BBD77" KeyPath="yes" Source="SourceDir\AppControl.cgf" />
                </Component>
                <Component Id="cmp8FB86D8D349378672E4CCD03AF81F56D" Guid="{}">
                    <File Id="filBF7F9A64772328CD9FBCB2EABD140A91" KeyPath="yes" Source="SourceDir\Application.Configuration.xml" />
                </Component> ........ and others folders and file 

Но когда я компилирую свой wixproj, он работает, но после запуска установщика только myimg.png развернут в нужном месте, но API не развернут.

Могу ли я забыть несколько вещей?

Edit1: Теперь с решением Bradfordrg у меня есть эта ошибка при компиляции wixproject:

"C: \ project.wixproj" (cible par défaut) (1) -> (ссылка cible) ->C:\wixfile1.wxs(25): ошибка LGHT0094: неразрешенная ссылка на символ "Компонент:MyAPP" в разделе "Продукт":*". [C:\project.wixproj]

В wixfile2 у меня есть:

<Fragment>
        <ComponentGroup Id="APP">
            <ComponentRef Id="cmpFE6698874FDA6C78569E0859730A1EEA" />
            <ComponentRef Id="cmpB50D6DA51C4E18ACC1DA69264417232D" />
            <ComponentRef Id="cmp1D36D13E7527C1AA7991A8BA6BD00215" />
            <ComponentRef Id="cmpA22778B0611224EC3606522B68E34E2D" />
....

и wixfile1.wxs у меня есть:

<Feature Id="myimg" Title="Main image" Level="1">
            <ComponentRef Id="myimg.png" />
    <ComponentRef Id="APP" />
        </Feature>

Это хорошо нет?

1 ответ

Решение

Проблема выглядит так, как будто компоненты, созданные с помощью heat.exe, не упоминаются <Feature...> элемент.

Когда вы запускаете heat.exe для генерации wixfile2.wxs, использовать -cg MyAPI возможность генерировать <ComponentGroup...> элемент в файле. Это должно добавить этот тип контента в wixfile2.wxs:

<Fragment>
    <ComponentGroup Id="MyAPP">
        <ComponentRef Id="cmpCCEB1A915DCA242C688E53A21CE3C3CD" />
        <ComponentRef Id="cmp4D36C9F3F381088827D9A606380954B9" />
        ...
    </ComponentGroup>
</Fragment>

Затем обратитесь к новой группе компонентов в функции, объявленной в wixfile1.wxs:

<Feature Id="myimg" Title="Main image" Level="1">
    <ComponentRef Id="myimg.png" />
    <ComponentGroupRef Id="MyAPP" />
</Feature>
Другие вопросы по тегам