Pregunta

Decidimos cambiar de la configuración integrada de VS a WiX.

Sin embargo, lo que actualmente hacemos es usar los archivos de salida de los proyectos como entrada para el proyecto de configuración. Esto nos permite agregar fácilmente archivos de aplicación a un directorio (para imágenes, muestras y otros recursos ...) y esos archivos se agregan automáticamente a la configuración cuando construimos.

No pude encontrar ninguna característica similar en WiX. WiX parece requerir una entrada de directorio y una entrada de archivo para todos y cada uno de los directorios y archivos. Esto nos obligaría a cambiar la fuente de WiX cada vez que se agregue un archivo que, a mi juicio, es prohibitivo ya que tenemos muchos de ellos.

¿Hay alguna forma integrada de hacerlo con WiX o tengo que escribir mi propia tarea que creará una fuente de WiX antes de llamar a la vela?

¿Fue útil?

Solución

Para WiX 2.0, el sebo es muy limitado; La parafina y la malva ofrecen funcionalidad adicional. Para WiX 3.0, el calor ofrece la misma funcionalidad que el sebo, un poco mejor.

En mi caso, he usado la fuente de malva, he modificado un poco y la he usado, porque la parafina necesita la versión 3.5 de .Net.

Puede utilizar Mallow

o herramienta de parafina para generar fragmentos de WiX: Comenzando , El dolor de WiX , Un mejor sebo , Parafina , Descargar , Paraffin para WiX 3.0

Otros consejos

He estado usando heat.exe en WIX 3.5 solo para ese propósito. Sin embargo, la última vez que lo comprobé, la documentación no estaba actualizada con la versión 3.5, así que manténgalo actualizado. en mente.

Aquí hay un ejemplo:

  

" $ (WIX) bin \ heat.exe " dir   " $ (SourcePath) " -cg MyFiles -gg -scom   -sreg -sfrag -dr INSTALLDIR -out " $ (ProjectDir) Fragments \ FileFragment.wxs "   -var wix.InstallerPath

El proyecto Open Source de MapGuide está utilizando actualmente Parafina 3.0 como han señalado otros.

Básicamente, la primera vez que se utiliza una versión de lanzamiento determinada, ejecutaremos nuestro script de instalación con un " generar " acción que crea nuevos archivos .wxs para la carpeta de origen con opciones específicas para cada uno.

En las compilaciones posteriores de la misma versión, " regen " se llama a action para garantizar que los archivos .wxs se actualicen con los nuevos archivos / directorios que se hayan agregado.

Creo que Heat v3 ahora también te permite hacer mucho (¿o quizás todo?) de esto, ya que Brian Rogers escribe . Todavía me siento más cómodo con la forma en que Paraffin hace esto de manera más explícita al mantener los GUID estáticos, pero el Heat actual parece una buena opción.

Después de más investigaciones, parece que hay un binario incluido llamado tallow.exe que hace precisamente eso. Crea un fragmento de un directorio mediante la búsqueda recursiva de archivos.

En mi uso de WIX, nunca he encontrado una característica que te permita agregar un directorio completo de archivos a la vez. Esto se debe a que hay muchas formas en que se puede usar un archivo dado (el sistema no sabe si más adelante querrá referirse a un archivo específico en esa carpeta, etc. y necesita saberlo), y también porque la instalación en sí debe ser bastante específica.

Eso no le impide escribir su propio frontend para WIX que generará el archivo XML WIX (o partes de él) después de analizar el contenido de las estructuras de un directorio. Eso es básicamente lo que hace uno de los sistemas que utilizamos en mi trabajo. Es la misma idea que cualquier utilidad de generación de código o archivo de texto. Simplemente atraviese el árbol y genere el texto apropiado.

EDITAR: De esa manera, puedes considerar que WIX es el " lenguaje de bajo nivel " para definir la configuración, y su utilidad como el " lenguaje de alto nivel " ;. Si necesita ayuda para escribir uno, háganoslo saber.

Además, puede hacer que el archivo WIX se genere como parte del proceso de compilación agregando esta utilidad a los pasos de compilación personalizados en VStudio. De esa manera, en realidad no tiene un " archivo WIX guardado " Para que cualquiera construya, el sistema lo construye al final, teniendo en cuenta automáticamente los archivos nuevos en el paso posterior a la construcción.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top