2010-07-20 14 views
43

Cuando estoy tratando de crear el instalador recibo el siguiente error:El directorio xx está en el perfil de usuario pero no aparece en la tabla RemoveFile.

El directorio ProgramMenuDir está en el perfil de usuario pero no aparece en la tabla RemoveFile.

¿Cómo resuelvo este problema? a continuación es la estructura de directorio que estoy usando.

<Directory Id="ProgramMenuFolder" Name="Programs"> 
     <Directory Id="ProgramMenuDir" Name="E"> 
       <Directory Id="Monarch" Name="Monarch"> 
        <Component Id="Monarch" Guid="E510F3DA-82AA-11DF-8814-8970DFD72085">      
         <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> 

Respuesta

63

Por lo que yo puedo ver, el problema está en el uso de <RemoveFolder/> elemento. Si se omite el atributo 'Directorio', toma el directorio del componente principal. En su caso, es un directorio con Id = "EFIMonarch". Esto explica por qué recibe la advertencia para el directorio externo (ProgramMenuDir), pero no la obtiene para el directorio EFIMonarch.

intente reemplazar:

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

con

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

Además, es una buena idea para ser explícitos para cada elemento RemoveFolder.

Espero que esto ayude.

+17

En mi caso, estaba viendo este error porque había olvidado agregar el componente como característica. – briantyler

+0

@TheMouthofaCow lo mismo para mí. –

+1

sí, finalmente después de 2 días de búsqueda – Gilad

1

Simplemente escriba esto para otros que aún puedan experimentar este problema incluso después de seguir la respuesta a esta pregunta.

Tuve el mismo problema, e incluso después de especificar explícitamente que el directorio en RemoveFolder no me ayudó, traté de poner este DirectoryRef que contiene los atajos de instalación/desinstalación de los somponents justo después de TARGETDIR dentro del mismo fragmento y me ayudó a solucionarlo mi problema.

Cuestiones relacionadas