2011-05-27 14 views
5

Estoy usando heat.exe para generar fragmentos de archivos WiX.heat.exe autogenerating fragments file - every build?

He hecho esto agregando un paso de compilación posterior al proyecto de mi sitio web en Visual Studio, de modo que cada vez que se hace una compilación, se recogen los archivos nuevos en el proyecto web y se crean nuevos archivos wxs. . Estos fragmentos de archivo se copian directamente en el proyecto de instalación de wix, de modo que cuando se construya el proyecto de instalación, incluirá todos los archivos de contenido recién agregados en el msi.

Noté la última vez que miré que cada vez que heat.exe regenera los fragmentos del archivo wxs, crea nuevas guids (pero aparentemente no identificadores de componentes nuevos).

En cualquier caso, soy muy nuevo en WiX/Heat, por lo que la pregunta es: ¿Debería autogenerar los archivos wxs cada vez, por ej. ¿Cómo afectará esto a la producción cuando se lanzan e instalan/desinstalan nuevas versiones del sitio web? ¿Hay alguna razón por la que no debería estar autogenerando e incluyendo estos fragmentos de archivos en cada compilación?

Respuesta

2

Hay dos líneas principales de pensamiento en este tipo de escenario; cuál de los dos sigas depende de qué riesgo te asuste más. ¿Te preocupa más que no incluyas algunos cambios que serán necesarios en el futuro porque nadie te lo dice y no actualizaste tu generación única, o te preocupa más que dos archivos .msi creados con resultados de autogeneración no lo hagan? actualizar bien no le permite saber si los archivos importantes desaparecen?

Personalmente, me inclino a creer que la autogeneración resulta en problemas difíciles de solucionar, por lo que sugeriría generarlos solo cuando sepa que algo ha cambiado y luego verificar las diferencias que espera.

+0

Esto es lo que estaba pensando. Pero realmente podría usar detalles más específicos sobre los problemas exactos producidos por la autogeneración. Hasta ahora, acabo de ver a algunas personas comentando que puede afectar cosas como las actualizaciones, pero nadie dice exactamente cuál es el problema técnico: ¿tiene que ver con las guías? Además, presumiblemente si desinstala completamente el viejo msi, entonces instale el nuevo, ¿entonces no tiene problemas de actualización? – jimasp

+1

Si realiza una desinstalación y una nueva instalación de la nueva, evitará muchos de los errores, especialmente si ninguno de sus componentes es * compartido *. En general, debe preocuparse por las reglas de los componentes http://msdn.microsoft.com/en-us/library/aa372795(v=vs.85).aspx; por lo general, los casos que ve son componentes completos que se agregan o desaparecen cuando los archivos se cambian o la información del registro cambia dentro de un componente. Ambas pueden ser devastadoras después de la actualización menor (archivos o claves que quedan en la desinstalación, o versiones más nuevas no instaladas). Buscar * reglas de componentes * o * actualizaciones menores * para obtener más información. –

+0

Gracias, ese enlace me apuntó en la dirección correcta. – jimasp