¿Debo envolver todos los archivos que deseo instalar en componentes individuales? ¿Cuál es la ventaja de poner varios archivos en un componente?Wix: ¿un archivo por componente o varios archivos por componente?
Respuesta
Una razón para "un archivo por componente" es resiliency. Cuando se inicia una aplicación, Windows Installer puede verificar si falta el keypath de cualquier componente. Si falta la ruta clave, el componente se reinstala/repara.
Si un componente tiene varios archivos, entonces solo un archivo puede ser el keypath. En wix, indique esto configurando KeyPath=yes
en un elemento File. Los otros archivos no estarán completamente protegidos por la resiliencia de Windows Installer. Solo se reinstalarán si el archivo keypath se pierde.
Otro motivo para tener "un archivo por componente" es cuando instala archivos en ubicaciones donde es posible que ya estén presentes (por ejemplo, una actualización de la aplicación o al instalar en c:\windows\system32
). El instalador de Windows determina si un componente necesita ser instalado comprobando el keypath. Si keypath es un archivo y el archivo ya está allí (con la misma versión o más), entonces el componente es no instalado. Eso es un problema si el otros archivos en el componente realmente necesitaban instalarse/actualizarse.
Esta es una gran respuesta, pero no dice por qué es útil lo contrario. Lo cual es razonable, ya que solo conozco una ventaja: ahorra tiempo de registro durante la instalación, ya que cada componente está registrado, pero cada uno de sus archivos no lo está. En general, esto no es una buena solución de compromiso, ya que mata la capacidad de recuperación y dificulta las actualizaciones, así que preste más atención a las recomendaciones de wcoenen. –
@Wim Coenen Cuando se utiliza un enfoque de "archivo por componente", uno debe poner KeyPath = "yes" en File, pero ¿qué pasa con su componente? ¿Es necesario agregar el mismo KeyPath = "yes" en el componente primario del archivo? Además, ¿qué pasa con el Directorio? ¿Cuál es la mejor práctica con los directorios (vacíos y no vacíos)? ¿Hay una buena guía sobre esto? ¡¡¡Gracias!!! – zam6ak
@ zam6ak: los comentarios no son el mejor lugar para hacer nuevas preguntas, ya que reciben solo una atención limitada y no pueden dar respuestas completas. ¡Publique una pregunta por separado en lugar de un comentario! –
que siguen el enfoque de Microsoft, que también es utilizado por InstallShield: http://msdn.microsoft.com/en-us/library/aa368269(VS.85).aspx
El enlace anterior da las ventajas de este enfoque.
- 1. WIX agregar nuevo archivo al componente compartido
- 2. Wix Componente con archivos en directorios diferentes
- 3. Eliminar un GUID = "" componente instalado con WiX
- 4. ¿Cambiar mi GUID de componente en wix?
- 5. Obtener un componente Swing por su nombre
- 6. JSF2.0 Componente Componente actionListener
- 7. compresión componente
- 8. Asignación de componente NHibernate - Componente nulo
- 9. componente de expresiones regulares contraseña componente (javascript)
- 10. Qué es un componente
- 11. ¿Por dónde debería comenzar a construir un componente?
- 12. ¿Por qué Visual Studio ha marcado mi clase como componente?
- 13. WiX: registrar el componente .NET COM x86 x64
- 14. ¿No se puede agregar un componente Swing a varios contenedores?
- 15. Cargando un componente Yii personalizado
- 16. Componente XMPP externo: ¿Alguien conoce un Tutorial o un Ejemplo de código abierto, por favor?
- 17. Swing: ¿Crear un componente arrastrable ...?
- 18. Eliminar componente oscilante mediante validar o revalidar
- 19. ¿Cómo se determina qué componente está siendo utilizado por matplotlib?
- 20. Componente ASP.NET para editar archivos .resx
- 21. ¿Por qué mi instalador de WiX necesita un CreateFolder vacío para actualizar condicionalmente un archivo Xml?
- 22. ¿Por qué swing draw componente simple dos veces?
- 23. Haciendo un componente redistribuible o una biblioteca para Android
- 24. Gestión de la memoria del componente no administrado Por CLR
- 25. componente dinámico que une por medio de 2 plantillas
- 26. Solr Por favor, use (Revisar la ortografía de componente)
- 27. Obtener componente de un JScrollPane
- 28. Componente compuesto JSF
- 29. Estrategia del componente JIRA
- 30. .NET (no visual) componente
Ciertos ensamblados ** .NET ** son ** archivos múltiples **, pero deben incluirse en el mismo componente MSI porque deben estar instalados como una "** unidad atómica **". En otras palabras, siempre deben instalarse y desinstalarse juntos como un paquete. –
Además de los ensamblados .NET de múltiples archivos, siempre uso un archivo por componente, ya que evita todo tipo de problemas de actualización y despliegue. –