Directory NN is in the user profile, but is not listed in the RemoveFile table

wix
subs picture subs · Jul 20, 2010 · Viewed 19.8k times · Source

When I am trying to create the installer i am getting the following error:

The directory ProgramMenuDir is in the user profile but is not listed in the RemoveFile table.

How do I resolve this issue? Below is the directory structure I am using:

<Directory Id="ProgramMenuFolder" Name="Programs">
  <Directory Id="ProgramMenuDir" Name="E">
    <Directory Id="Monarch" Name="Monarch">
      <Component Id="Monarch" Guid="*">                       
        <RemoveFolder Id='Monarch' On='uninstall' />
        <RemoveFolder Id='ProgramMenuDir' On='uninstall' />
        <RegistryValue Root='HKCU' Key='Software\[Manufacturer]\[ProductName]' 
                                   Type='string' Value='' KeyPath='yes' />
      </Component>
    </Directory>
  </Directory>
</Directory>

Answer

Yan Sklyarenko picture Yan Sklyarenko · Jul 20, 2010

As far as I can see, the problem is in the usage of <RemoveFolder/> element. If the 'Directory' attribute is omitted, it takes the directory of the parent component. In your case, it is a directory with Id="EFIMonarch". This explains why you get the warning for the outer directory (ProgramMenuDir), but don't get it for EFIMonarch directory.

Try replacing:

<RemoveFolder Id='ProgramMenuDir' On='uninstall' />

with

<RemoveFolder Id='RemoveProgramMenuDir' Directory='ProgramMenuDir' On='uninstall' />

Also, it is a good idea to be explicit for every RemoveFolder element.

Hope this helps.