Estoy empezando con WiX ya que necesito poder automatizar la creación de una MSI en nuestro servidor de CI. ¿Hay alguna forma de incluir automáticamente todas las dependencias de un proyecto?Incluyendo todas las dependencias
Respuesta
La extensión "proj" de heat.exe está mejorando. Heat no está listo para ser utilizado para la producción de manera automatizada. Es una forma muy razonable de armar la estructura inicial pero no hace lo correcto con ejecuciones repetidas (por ejemplo, los Component/@ Guids no son estables, sin embargo ...).
Cuando los problemas anteriores se resuelven en heat.exe, incorporarlo a su proceso de construcción ciertamente ahorrará todos los problemas mencionados anteriormente. Está en nuestra lista para mejorar después de que los errores más notorios se arreglan en el conjunto de herramientas del núcleo.
En mi experiencia, Wix sigue siendo un proceso muy manual. Tienes que agregar cada dependencia individualmente. Creo que la idea era construir el instalador Wix al mismo tiempo que estás construyendo tu proyecto y agregar cada elemento al agregarlo en el código. De esta manera, parece menos intimidante que tener que regresar y hacer una retrospectiva del proyecto. ¡Sin duda sería una gran sugerencia para una mejora!
No he visto algo en WIX que pueda hacer eso, se supone que debe conocer todas las dependencias que requiere su solución/proyecto. Lea este blog, el interior es una cita:
Mantenga su fuente cercana y sus dependencias más cercanas (. Apologías Sun-Tzu)
La mejor manera que encontré para asegurarse de que nada se olvida en el MSI, debía probar el Instalador en una PC virtual instalada limpia.
Lo más cercano que he visto, para algo que quieres es blog de este tipo.
Por ahora, estamos trabajados para hacerlo a mano.
Acabo de comenzar con WIX y creo que WixEdit (http://wixedit.sourceforge.net/) oscila para agregar múltiples archivos/dlls, resolvió mi frustración con Wix de obtener los archivos fácilmente. Simplemente mantenga sus archivos organizados y luego use la función de importar carpeta. Por supuesto, no es compatible con las nuevas recomendaciones 3.0 de tener un componente por archivo.
El calor también es bueno y admite un componente por archivo. El siguiente en mi lista es obtener algo de automatización para que estos archivos se actualicen automáticamente en un estudio visual.
Eche un vistazo a paraffin, de Wintellect.
Acabo de comenzar con WIX también e hice un truco rápido y sucio para agregar referencias automáticamente. La idea es escanear todo .dll en la carpeta de salida del proyecto que desea empaquetar.
En el pre-construcción de su proyecto WIX, añadir
call "$(ProjectDir)GenerateDependency.bat" "$(SolutionDir)" "$(ProjectDir)Dependencies.wxs"
añadir un archivo GenerateDependency.bat en su proyecto WIX contiene
@echo off
set SOLUTIONDIR=%1
set OUTPUTFILE=%2
echo Starting Dependency check...
echo ^<?xml version="1.0" encoding="UTF-8"?^> > %OUTPUTFILE%
echo ^<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"^> >> %OUTPUTFILE%
echo ^<Fragment^> >> %OUTPUTFILE%
echo ^<ComponentGroup Id="MesDependance" Directory="INSTALLFOLDER"^> >> %OUTPUTFILE%
for %%F in (%SOLUTIONDIR%WixServiceInstallerExample\bin\Debug\*.dll) do (
echo "-- Adding %%~nxF"
echo ^<Component Id="%%~nF"^> >> %OUTPUTFILE%
echo ^<File Id="%%~nF" Name="%%~nxF" Source="%%~dpnxF" Vital="yes" KeyPath="yes" DiskId="1"/^> >> %OUTPUTFILE%
echo ^</Component^> >> %OUTPUTFILE%
)
echo ^</ComponentGroup^> >> %OUTPUTFILE%
echo ^</Fragment^> >> %OUTPUTFILE%
echo ^</Wix^> >> %OUTPUTFILE%
echo Dependency check done.
modifique el "WixServiceInstallerExample \ bin \ Debug", según tu necesidad.Esta alma es la carpeta de salida del proyecto que desea empaquetar
Nota: Tenga en cuenta que VisualStudio suele perder el tiempo con la codificación. Mejor edite este archivo con Notepad ++ y asegúrese de que esté en ANSI, no en UTF8.
Esto generará una Dependencies.wxs que puede incluir en su proyecto. Si está bajo el control de la fuente, excluirlo de ella.
Cada compilación volverá a analizar .dll y reconstruirá Dependencies.wxs antes de realizar realmente el paquete.
- 1. Descargar todas las dependencias gems
- 2. Incluyendo implícitamente dependencias opcionales en Maven
- 3. Agregar UIView sobre todas las demás vistas, incluyendo StatusBar
- 4. encontrar todas las funciones (incluyendo privado) en un paquete
- 5. Buscar todas las funciones existentes para las dependencias del paquete?
- 6. Herramientas para encontrar todas las dependencias en Java jar
- 7. Servidor SQL: ver todas las dependencias de la clave externa
- 8. empaquetado de jruby script en jar con todas las dependencias?
- 9. C# - ¿Aplicación para mostrar todas las dependencias entre funciones?
- 10. Eclipse RCP: ¿todas las posibilidades para definir dependencias?
- 11. Descarga de todas las dependencias para un módulo de Perl
- 12. Incluyendo las bibliotecas Pear en marcos PHP
- 13. NuGet: comando de paquete no está incluyendo dependencias NuGet
- 14. Generar todas las permutaciones de todas las longitudes
- 15. Building JAR que incluye todas sus dependencias
- 16. Sólo las fuentes de descarga de un paquete y todas las dependencias
- 17. Exportación de clase ejecutable Java para archivo .jar incluyendo dependencias requeridas solamente
- 18. PIP: Instalar solo las dependencias
- 19. ¿Cómo ordenar según las dependencias?
- 20. Excluyendo las dependencias de Maven
- 21. Dependencias circulares de las declaraciones
- 22. Resolviendo las dependencias de maven
- 23. ¿Cómo manejan oozie las dependencias?
- 24. ¿De dónde provienen las dependencias en Python?
- 25. Vala: reduciendo el tamaño de las dependencias
- 26. ¿Cómo puedo armar una aplicación de consola con Maven sin desempaquetar todas las dependencias?
- 27. Generar todas las dependencias del proyecto en un solo archivo usando gcc -MM flag
- 28. ¿Hay alguna manera de obtener todas las dependencias del proyecto a través del plugin sbt?
- 29. La forma más simple y rápida de separar todas las dependencias de una clase
- 30. Perfil Haskell sin instalar la instalación de bibliotecas de creación de perfiles para todas las dependencias
Descubrió el calor hace unos 10 minutos. Tengo la lista de dependencia ahora, así que no tengo que escribirla. Parece prometedor: D –
Esta es una respuesta anterior, pero espero que ya no sea cierta y heat.exe se ha hecho lo suficientemente estable para el uso de producción ... :) – ostati