2010-02-26 30 views
5

En Windows 7 (es decir, MSI 5.0), existe una propiedad llamada MSIFASTINSTALL que mejorará el rendimiento de su instalador. O bien, puede desactivar la opción de reversión configurando la propiedad DISABLEROLLBACK. Esta propiedad también está disponible en versiones anteriores de MSI 5.0.Mejora del rendimiento de la instalación/desinstalación de Wix msi

Comparta sus conocimientos para mejorar la experiencia de instalación. Además, no puedo encontrar la manera correcta de mejorar el rendimiento de Desinstalar. Utilizamos un gran conjunto de archivos/carpetas (más de 70,000) y componentes como 35000. Se cuelga en el proceso de cálculo de costos de archivos y no se sabe cómo evitar este retraso. En algún momento se cuelga durante más de 2 o 3 horas para desinstalar en máquinas de XP o Vista

Editar: hice algún artilugio en mi instalación de comprimir las carpetas que tiene enormes conjuntos de archivos y redujo el tamaño de los componentes, como Christopher dijo . Mejoró el rendimiento drásticamente. sí, por supuesto, perdí el patrón instalador MSI al hacer este concepto y no es recomendable. Sin embargo, es una compensación cuando queremos lograr esto y nuestro usuario realmente no quiere tener detalles de la versión del archivo cuando desinstalamos/actualizamos los parches.

Respuesta

4

Tuve una situación similar, aunque el número de archivos fue un poco menor, de unos 25k. La mayoría de esos archivos eran iconos, que nunca se cambiaron de una versión a otra. Solo una versión mayor (una vez cada 2 años) puede traer algunos cambios a esta área. Una solución "rápida & dirty" comprimía esos iconos e incluía este único archivo en la instalación (no un componente, solo un archivo al lado del MSI). Durante la instalación, este ZIP se extrajo en el subproceso en segundo plano y la tabla RemoveFile se usó para eliminar íconos en la desinstalación. Era más rápido que instalar esos iconos de 20k como componentes separados, incluso como componentes con muchos archivos. Una buena y correcta solución fue convencer a los principales desarrolladores de aplicaciones de que pusieran todos esos iconos de 20k en los 20 archivos zip. Ahora estos 20 archivos zip se instalan como componentes regulares de MSI, y la aplicación sabe cómo extraer un icono a pedido y almacenarlo en caché.

No le recomendaría deshabilitar la reversión. Aunque ahorrará bastante tiempo de instalación, perderá una opción estándar de reversión garantizada.

La desinstalación lleva más tiempo que la instalación debido a la función de retrotracción nuevamente. Tal como lo entiendo, al desinstalar, el MSI primero crea una copia de cada archivo, luego desinstala cada archivo y, en caso de éxito, descarta cada archivo respaldado. Por lo tanto, el tiempo de desinstalación es aproximadamente tres veces más que el tiempo de instalación. Experimenté el mismo problema cuando tomé una opción predeterminada para tener 1 archivo por componente. Aunque se recomienda, debe hacer una compensación si lidia con un caso pendiente.

Espero que esto aclare las cosas un poco.

+0

Yan, realmente aprecio tu respuesta que me aclara más este concepto. En mi caso, la opción de reversión no es necesaria y, hasta el momento, nunca he conocido un caso así que necesite la opción de deshacer. De todos modos, intentaré toda la sugerencia de su gente. – sankar

+0

¿Puede explicar cómo puede desinstalar los archivos de iconos en caché? – sky

+0

Los archivos de iconos en caché en este caso son los archivos que Windows Installer no instaló y no sabe nada. Por lo tanto, puede ser un conjunto de elementos 'RemoveFile' /' RemoveFolder' o una acción personalizada. Prefiero la primera variante. –

2

La mejor opción para mejorar el rendimiento de su aplicación es reducir el número de archivos y componentes. Si bien puede haber un par de ajustes que puede hacer a su MSI para mejorar el rendimiento, la cantidad excesiva de archivos/componentes es el problema central y será el factor decisivo en las mejoras de rendimiento que realice. ¿Por qué necesita instalar 70k archivos?

+0

Gracias por su respuesta. Trataré de reducir el factor de componentes para reducirlo. Necesito enviar una gran cantidad de archivos html e imágenes para fines tutoriales. – sankar

+2

Mi instalación típica tiene alrededor de 15,000 archivos y estas son aplicaciones cliente. En la industria del juego, es muy fácil terminar con una gran cantidad de archivos instalados. En el lado del servidor (particularmente las aplicaciones web) es muy fácil obtener decenas de miles. Una vez observé que el simple hecho de agregar Infragistrics a un cliente web agregaba más de 5.500 archivos. Cualquiera que intente reducir la envoltura de una aplicación web puede encontrar rápidamente instaladores de gran tamaño y gran complejidad. Piense en las líneas de Microsoft que ofrece un sitio web de MSDN "alojado por sí mismo". –

Cuestiones relacionadas