.net-6.0wix3.11wix4

error WIX0005: The Fragment element contains an unexpected child element 'Merge'


Currently I am migrating my wix setup from wix v3.11 to wix v 4.0 i have used the command WIX Convert <setup.myapp>.wxs while using this above command i am getting an error in my msi file that

 error WIX0005: The Fragment element contains an unexpected child element 'Merge'.

in particular line where i have used this code

<Fragment>
 <DirectoryRef Id="TARGETDIR">
  <Merge Id="_M_myBase" SourceFile="$(var.SourceDir)\Merge.myBase.msm" DiskId="1" Language="1033" />
  <Merge Id="_M_myService" SourceFile="$(var.SourceDir)\Merge.myService.msm" DiskId="1" Language="1033" />
  <Component Id="_COMP_Viewer_exe" Guid="{2809A717-49AF-0429-7DD4-AEDD42DB4292}">
   <File Id="_FILE_Viewer_exe" Name="Viewer.exe" KeyPath="yes" Assembly=".net" AssemblyManifest="_Viewer_exe" AssemblyApplication="_Viewer_exe" DiskId="1" Source="$(var.SourceDir)\Viewer.exe" />
   <Shortcut Id="_F5F26CA032AC4A2D86A378B0EEDB6B42" Directory="_DIR_StartMenu_ProductFolder" Name="Device Viewer" Icon="Device.ico" IconIndex="0" Show="normal" Advertise="yes" />
  </Component>
 </DirectoryRef>
</Fragment>

Solution

  • Merge can only be a child of a directory, in both WiX v3 (Directory, DirectoryRef) and v4 (Directory, DirectoryRef, StandardDirectory).