2010-04-13 12 views

Respuesta

36

Establecer el valor ComponentPermanent="yes" así:

<Component Id="LicenseDoc" Guid="*" Permanent="yes"> 
    <File Id ="License.rtf" Source="$(var.SolutionDir)Installer\License.rtf" /> 
</Component> 
+7

Publiqué pregunta a la lista de correo de wixusers y obtuvo la misma respuesta, pero también para anotar sobre la bandera permanente (cumplidos de Phil Wilson): Mientras todos se den cuenta de que Permanente significa permanente para siempre. No significa "hasta que cambie la configuración a no permanente". Hace que ese componente sea permanente en el sistema, y ​​no lo usaría a menos que se requiera "instalador permanente para siempre". – glenneroo

+0

Voy a revivir este tema y preguntar: ¿y si tiene numerosos (más de) 200 archivos que desea dejar? Ir a cada componente y agregar Permanente = "sí" o configurar Guid = "" no se siente bien. – treaz

+1

pero esa es la forma de WiX, usted está describiendo el estado finito de cada archivo, por lo que no hay ninguna ambigüedad sobre cómo debería ser el sistema antes/después de la instalación/desinstalación. El problema con los instaladores más antiguos es que no manejaban todos los errores, por lo tanto, estarían en estados extraños. MSI es un proceso con estado. –

6

Cortesía de Phil Wilson de wixusers lista de correo:

Consulte la documentación del SDK de MSI para la tabla de los componentes - establecer el GUID de componentes a ser nula (vacío). El efecto de esto es que el componente no está registrado (por lo que no se puede reparar) y no se desinstalará.

0

Otra manera de prevenir instalador de Windows de suprimir el componente de desinstalación es establecer un componente GUID en blanco o vacío. Esto causará que el componente sea instalado, pero nunca será rastreado o desinstalado.

Véase el MSI SDK documentation: ". ... si esta columna (ComponentId) es nulo el instalador no se registra el componente y el componente no puede ser eliminado o reparado por el instalador Esto podría hacerse intencionalmente si el componente es solamente necesario durante la instalación, como una acción personalizada que limpia archivos temporales o elimina un producto viejo. También puede ser útil al copiar archivos de datos en la computadora de un usuario que no necesitan registrarse. "

Cuestiones relacionadas