una - Cómo agregar un directorio completo o salida de proyecto al paquete de WiX
como hacer una pagina para que los usuarios suban archivos wix (5)
Decidimos cambiar de la configuración integrada de VS a WiX.
Sin embargo, lo que hacemos actualmente es usar archivos de salida de proyectos como entrada para el proyecto de configuración. Esto nos permite agregar fácilmente archivos de aplicaciones 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 cada directorio y archivo. Esto requeriría que cambiemos la fuente de WiX cada vez que se agregue un archivo que, a mi entender, 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?
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 me encontré con una característica que le permite agregar un directorio completo de archivos a la vez. Esto se debe a que hay muchas maneras en que se puede usar un archivo dado (el sistema no sabe si luego querrá referirse a un archivo específico en esa carpeta, etc., y necesita conocerlos), y también porque la instalación en sí necesita ser bastante específica.
Eso no le impide escribir su propia interfaz para WIX que generará el archivo XML de WIX (o partes de él) después de analizar los contenidos de las estructuras de un directorio. Eso es básicamente lo que hace uno de los sistemas que usamos en mi trabajo. Es la misma idea que cualquier utilidad de generación de código o archivo de texto. Simplemente recorra el árbol y genere el texto apropiado.
EDITAR: de esa manera, puede considerar WIX como 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, infórmenos.
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 esta forma, en realidad no tiene un "archivo WIX guardado" que alguien haya creado, el sistema simplemente lo compila al final, tomando automáticamente en cuenta los archivos nuevos en el paso posterior a la compilación.
Para WiX 2.0, el sebo es muy limitado; la parafina y la malva ofrecen una funcionalidad adicional. Para WiX 3.0, el calor ofrece la misma funcionalidad que el sebo, un poco mejor.
En mi caso, utilicé mallow source y lo modifiqué un poco y lo usé, porque la parafina necesita una versión 3.5 de .Net.
Puedes usar Mallow
o Herramienta de parafina para generar fragmentos de WiX: Primeros pasos , El dolor de WiX , Un mejor sebo, Parafina , Descarga , Parafina para WiX 3.0
El proyecto MapGuide de código abierto está utilizando John Robbins '' Paraffin 3.0 como otros han señalado.
Básicamente, la primera vez para una versión de lanzamiento determinada, ejecutaremos nuestro script de instalador con una acción de " generación " que crea nuevos archivos .wxs para la carpeta de origen con opciones específicas para cada uno.
En compilaciones posteriores de la misma versión, se llama a la acción " regen " para garantizar que los archivos .wxs se actualicen con los nuevos archivos / directorios que se hayan agregado.
Creo que Heat v3 también te permite hacer mucho (¿o quizás todo?) De esto, como escribe Brian Rogers . Todavía me siento más cómodo con la forma en que Parafina hace esto de manera más explícita manteniendo GUID estáticos, pero el Heat actual parece una buena opción.
He estado usando heat.exe en WIX 3.5 solo para ese propósito. La última vez que revisé, la documentación no estaba actualizada con el lanzamiento 3.5, así que tenlo en cuenta.
Aquí hay un ejemplo:
"$ (WIX) bin / heat.exe" dir "$ (SourcePath)" -cg Mis archivos -gg -scom -sreg -sfrag -dr INSTALLDIR -out "$ (ProjectDir) Fragments / FileFragment.wxs" -var wix.InstallerPath