windows - metaetiqueta - wix head tag
Instaladores: ¿configuración WIX o Inno? (4)
Estoy comparando estas dos herramientas. La impresión que tengo es:
- Inno Setup no produce un MSI, pero puede hacer todo lo que WIX puede hacer
- WIX produce una MSI, pero tiene una curva de aprendizaje empinada
¿Estás de acuerdo con esta caracterización? ¿Qué otras diferencias hay? ¿Cómo WIX # reorganiza esta historia? Como Inno Setup no usa el instalador de Windows, ¿tiene dificultades con las desinstalaciones? ¿Puede Inno Setup, tras un comando, degradar una instalación a una versión anterior, o solo puede instalar / actualizar aplicaciones?
Llego tarde para responder a este hilo. He usado Inno Setup para el producto de mi empresa durante años. Hace la mayoría de las cosas muy bien, pero el mayor obstáculo para mí son las acciones personalizadas. En Inno Setup, uno debe usar una variante del lenguaje Pascal. Con WiX Toolset, puedo y uso C # para mis acciones personalizadas, lo cual es mucho más cómodo para mí. Es cierto que esa es una preferencia personal, pero es la razón principal por la que cambié de una plataforma Inno Setup excelente a una plataforma WiX también excelente. Eso, y el hecho de que había tantos beneficios del uso de MSI que ya se han mencionado en otra respuesta.
Francamente, para mí, la curva de aprendizaje de Pascal fue mayor que la de WiX usando el libro, WiX 3.6: Una guía para desarrolladores de Windows Installer XML .
Integramos ambos en nuestro sistema de compilación.
Pero decidimos promocionar los archivos innosetup exe para clientes que no son de negocios y msi solo bajo demanda por una razón simple.
No puede enviar una versión multi-localizada del programa de instalación con MSI. Necesitarías un instalador para cada idioma y esto apestaba. Puede haber algunos ataques de piratería que le permitan volver a escribir toda la GUI, pero esto no está bien documentado y no hay una fuente abierta para robar y mucho trabajo.
La GUI es, de hecho, la peor parte de WiX, que de otro modo es técnicamente superior a Innosetup.
Con Innosetup es fácil enviar un exe en 5 idiomas. Ya tenemos 6 binarios [Free, Home, Pro, cada uno de 32/64 bits], por lo que la variante de explosión sería enorme y si comercializas una versión japonesa con una página web japonesa y lo primero que aparece es una instalación solo en inglés, es una mala impresión.
El MSI para usuarios comerciales que necesitan políticas grupales, etc. es solo inglés y eso está bien para los usuarios de negocios.
Ha pasado mucho tiempo desde que trabajé con MSI, cuando cambié a InnoSetup, nunca miré hacia atrás.
No quería que mi instalación fuera un dolor de cabeza. Necesitaba algo donde pudiera "Configurarlo y olvidarlo"
Por defecto, InnoSetup produce una desinstalación. Puede manejar necesidades simples o complejas de instalación y desinstalación.
Con InnoSetup, tiene algunas formas diferentes de actualizar las aplicaciones.
- Inicialmente utilizamos el método de sobreescritura que simplemente sobrescribió la instalación existente.
- Recientemente cambiamos una desinstalación automática de la versión anterior cuando se instaló una nueva versión.
Con InnoSetup, las degradaciones normalmente se desinstalan y vuelven a instalar la versión anterior.
Tiene razón acerca de la parte MSI no MSI y tiene razón en que la curva de aprendizaje de MSI es más pronunciada. Pero ambos tienen características que otros no tienen. Permítanme citar a Glytzhkof sobre las ventajas de MSI.
Glytzhkof dice hola ;-) . Por favor, lea mis dos respuestas originales en serverfault.com para obtener un resumen de los problemas comunes con MSI resultantes de su pronunciada curva de aprendizaje. Esta respuesta aquí se centra en los beneficios teóricos, la otra respuesta (en el mismo hilo) resume los problemas comunes de MSI fuera de mi cabeza. Las adiciones allí son bienvenidas; acabo de agregar los problemas más comunes.
- Transparencia (formato de instalador abierto): se puede revisar e inspeccionar una MSI. Este es un gran problema para las grandes corporaciones. Con la excepción de acciones personalizadas compiladas, un archivo MSI es un "cuadro blanco". Si la configuración cambia algo loco, como la configuración de red de todo el sistema, en realidad puede verlo.
- Personalización : una MSI se puede personalizar a través de transformaciones para adaptarse a las necesidades y estándares de una organización, al mismo tiempo que permite la interoperabilidad con las actualizaciones del instalador del proveedor. No cambia el instalador en sí, crea su personalización en un archivo separado, específico de la organización, llamado transformación. Puede deshabilitar acciones personalizadas y, en general, cualquier elemento del instalador, y las acciones personalizadas de "recuadro negro" pueden aprobarse comunicándose con el proveedor para obtener una explicación. Estos archivos de transformación también se utilizan a veces para localizar un archivo MSI en diferentes idiomas. Se pueden aplicar varias transformaciones a una sola MSI.
- Normalización : MSI no se presta a "permitir nada". Proporciona un marco completo para el instalador, que también incluye la desinstalación, todo en formato estándar. La GUI del instalador también está estandarizada con características integradas para admitir la instalación y desinstalación silenciosa que se puede activar de forma remota.
- Gestión e informes : Windows Installer mantiene una base de datos completa de todos los elementos que un producto ha instalado. Puede determinar de manera confiable si un producto está instalado, qué características se instalaron y qué versiones de archivo se instalaron. Además, puede obtener una lista de los parches que se han aplicado al producto base, si corresponde.
- Seguridad : a partir de la base de datos de instalación integral, es posible detectar vulnerabilidades de seguridad en los productos instalados. MSI también incluye principios de "derechos elevados" que permiten a un usuario restringido activar la instalación de un producto que requiere la instalación de privilegios de administrador. Esto es parte de la "función de publicidad" que permite a un administrador poner a disposición de los instaladores los usuarios sin instalarlos realmente en todas las estaciones de trabajo. No hay necesidad de meterse con los derechos temporales para que las cosas funcionen.
- Validación : los archivos MSI se pueden verificar con reglas de validación para garantizar que cumplan con varias reglas de coherencia interna (denominadas ICE). Las empresas pueden crear sus propios controles de ICE para hacer cumplir las normas y requisitos corporativos especiales. Esto ayuda mucho con QA.
- Capacidad de recuperación : la función de instalación del administrador del instalador de Windows proporciona una forma estándar de extraer los archivos fuente de una MSI. Estos archivos fuente se pueden compartir y estar disponibles para todas las estaciones de trabajo para su instalación. Esto asegura que las operaciones de reparación, desinstalación y modificación se completen sin solicitar los medios de instalación en un CD o similar. Esto es particularmente importante para las operaciones de parchado y actualización que pueden requerir acceso a los archivos fuente de versiones anteriores en circunstancias especiales.
- Revertir - La instalación de un archivo MSI normalmente activará la creación de un punto de restauración. Además, todos los archivos y elementos de registro reemplazados o sobrescritos durante la instalación se guardarán y restaurarán si la instalación no se completa. Esto garantiza que la estación de trabajo se quede en estado estable incluso si la instalación fallara. Como es de esperar que los archivos MSI mal diseñados puedan violar las funciones integradas de Windows aquí, vea mi otra publicación en este hilo para más detalles.
- Parches y actualizaciones : aunque el parche altamente complejo en el instalador de Windows está totalmente administrado y registrado en el sistema, de modo que se puede determinar un estado de seguridad de los sistemas al verificar lo que se ha instalado. Las actualizaciones están estandarizadas a unas pocas variantes básicas, y esto permite que las actualizaciones se realicen con un mayor grado de certeza. Los sistemas de implementación podrán informar qué actualizaciones fallaron y por qué.
- Registro : Windows Installer proporciona una característica de registro estandarizada que es muy superior a las encarnaciones anteriores, aunque casi excesivamente prolija. Los archivos de registro se pueden descifrar utilizando analizadores de registro, y los niveles de registro personalizados se pueden utilizar para eliminar la generación de archivos de registro demasiado grandes con información innecesaria. Para fines de depuración, el registro detallado es extremadamente útil. Vea el blog de Rob Mensching para una buena forma manual de leer un archivo de registro de MSI.