vscode visual studio spell color code beautiful visual-studio deployment wix wix3.5 heat

visual-studio - visual - vscode beautiful



¿Cómo puedo excluir que los archivos se cosechen con calor(WiX 3.5)? (3)

Me gustaría recolectar una carpeta con muchos archivos usando heat.exe. Pero en lugar de recopilar todos los archivos, me gustaría excluir extensiones de archivo específicas como "* .txt" o algo así. ¿Cómo puedo hacer esto?


En lugar de intentar averiguar cómo recopilar archivos seleccionados de una carpeta, utilizo una acción de compilación anterior para rellenar una carpeta con solo los archivos que quiero que se recopilen. El siguiente flujo de trabajo ha estado trabajando para mí:

  1. Eliminar un "archivo" si existe
  2. Crear una carpeta de "archivos"
  3. Copie los archivos a la carpeta "archivos". Utilizo la acción de compilación robocopy, que me da suficiente control para especificar qué archivos incluir o excluir.
  4. Cosecha de toda la carpeta.

Lo tengo configurado para ejecutar la acción de recolección condicionalmente, solo para compilaciones de depuración. Las compilaciones de lanzamiento se generan desde nuestro servidor TFS y utilizan los .wxs generados desde el control de origen. Debería estar bien ejecutar harvest en el servidor de compilación, pero es un paso adicional y no tenerlo ejecutado elimina el problema del "proceso no determinista" descrito por Christopher Painter . Aparte de ese paso, los mismos pasos se ejecutan en el servidor de compilación como lo hacen en mi máquina dev.


No soy un gran defensor de este patrón. ¿Cómo se asegura el control de cambios cuando se utiliza un proceso no determinista? ¿Cómo sabe que un archivo que apareció en un directorio realmente debería enviarse en un producto y cómo sabe que un archivo que desapareció del directorio no debería romper una compilación? ¿Cómo sabe que está infringiendo las reglas de los componentes y creando problemas de servicio?

Solía ​​enlazar archivos dinámicamente en la década de 1990 porque era "fácil", pero recuerdo que me mordió muchas veces y no lo he hecho desde entonces.

Sé que Bob Arnson estaba de acuerdo con este punto de vista:

http://www.mail-archive.com/[email protected]/msg03420.html

Pero ahora en WiX 3.5 estoy empezando a ver capacidades que admiten el enlace dinámico y no entiendo por qué iban a ser así. Preferiría actualizar un archivo WXS y volver a registrarlo en el control de código fuente, luego arriesgarme a poner mi proceso de implementación en piloto automático.


Creo que la única opción por ahora es recolectar la carpeta completa y aplicar una transformación al archivo .wxs resultante (ver -t:<xsl> switch) para excluir lo que no es necesario (archivos txt en su caso). Sin embargo, no probé la versión 3.5 de calor (a juzgar por la versión 3.0), pero no creo que haya cambios en esta área.