Wix: merge a module with multiple wxs files

So, I am trying to create a merge module where I have several wxs files. I thought that everything was in order, since the project of my project succeeded. Later I realized that the path used in the Source attribute for one of the wxs secondary files was completely wrong, but the compiler did not give the following error:

The system cannot find the file '.. \ .. \ release_area \ WrongPath \ Component2.dll'.

In the secondary wxs file, I added a DirectoryRef element referencing the AssemblyFolder folder in the wxs main file to create a link between the two files.

Main wxs file :

<Module Id="MyModule" Language="1033" Version="1.0.0.0">
    <Package InstallerVersion="200" Platform="x86"/>
    <Directory Id="TARGETDIR" Name="SourceDir">
        <Directory Id="AssemblyFolder">   
            <Component Id="Component1.dll">
             <File Id="Component1.dll" Name="Component1.dll" 
          KeyPath="yes" Assembly=".net" 
          Source="..\..\release_area\Comp\Component1.dll" />
         </Component>
        </Directory>
    </Directory>
</Module>

Secondary wxs file :

<Fragment>
    <DirectoryRef Id="AssemblyFolder">
        <Component Id="Component2.dll">
         <File Id="Component2.dll" Name="Component2.dll" 
             KeyPath="yes" Assembly=".net" 
             Source="..\..\release_area\WrongPath\Component2.dll" />
     </Component>
    </DirectoryRef>
</Fragment>

: <Component Id="Component2.dll"> wxs, : '.. \..\release_area\WrongPath\Component2.dll'.

, , wxs wxs , , .

+3
1

(candle.exe). Candle.exe "" ( "" ). (light.exe), , . Light.exe " " (Product, Module Patch) . Main.wxs Secondary.wxs, Secondary.wxs . , :

<ComponentRef Id="Component2.dll"/>

- ( ). , ComponentGroup ComponentGroupRef .

+5

Source: https://habr.com/ru/post/1718555/


All Articles