No creo que veas demasiados desacuerdos aquí, especialmente con respecto a MSI. Creo que una cosa a tener en cuenta es observar la forma en que muchos programas usan archivos MSI en estos días. Mostrar diálogos de IU y tomar decisiones de configuración complejas con un MSI es muy débil simplemente por la forma en que se diseñó Windows Installer, así que he notado que muchos programas se dividen en un montón de MSI para bebés que se instalan con la IU mínima por programa de instalación para padres. El asistente de instalación de SQL Server 2008 hace esto. UPS WorldShip hace esto. Y pintar.NET también lo hace: el asistente que ve es una aplicación de Windows Forms e inicia el propio msiexec
(puede ver la IU mínima del Windows Installer emergente sobre la ventana del asistente blanco), pasando los parámetros de configuración como propiedad argumentos a msiexec
.
Un escenario común en el que esto surge es cuando alguien tiene la tarea de construir un instalador para una aplicación que tenga contrapartes de servidor y cliente. Si el usuario elige la opción de servidor, puede que quieran o no que se instale una nueva base de datos, lo que significa instalar SQL Server. Pero no puedes simplemente instalar SQL Server mientras estás en el medio de tu propia instalación porque Windows Installer no te permitirá hacerlo. Por lo tanto, una solución frecuente es escribir una aplicación que muestre un asistente que permita al usuario configurar todas las opciones de configuración, y luego su aplicación iniciará los archivos MSI según sea necesario para SQL Server, su aplicación de servidor y su aplicación cliente en el mínimo Modo UI; Básicamente, evitando por completo el aspecto de "características" de Windows Installer y moviéndolo al nivel de MSI. Las instalaciones de paquetes múltiples de 4.5 parecen ser un paso más en esta dirección. Este formato también es especialmente útil si también necesita realizar un bucle en instaladores que no sean MSI de terceros como parte de su proceso de instalación, como instalar un controlador de impresora para alguna extraña impresora de punto de venta.
También estoy de acuerdo en que Windows Installer carece de compatibilidad integrada para escenarios de implementación comunes. Está destinado para cuando la configuración no es XCOPY, pero parecen pasar por alto el hecho de que la configuración generalmente no es solo "archivos + accesos directos + claves de registro". No hay acciones integradas para configurar los sitios web de IIS, registrar certificados, crear y actualizar bases de datos, agregar ensamblajes al GAC, y más. Supongo que tienen la opinión de que algo de esto debería ocurrir en la primera ejecución en lugar de ser una parte transaccional de la instalación. Las herramientas y la documentación de libre acceso han sido terribles, absolutamente horribles, durante la mayor parte de una década. Ambas cuestiones se abordan en gran parte por el proyecto WiX y DTF (que le permite finalmente usar acciones personalizadas de código administrado), por lo que estamos muy agradecidos con el trabajo de Rob Mensching y otros en ese proyecto.
He tenido la misma experiencia. La instalación puede absorber rápidamente su tiempo a medida que avanza por el agujero del conejo de "Oh Dios, supongo que tengo que convertirme en un experto en este también". En segundo lugar, creo que es mejor abordarlo desde el principio en su proyecto y mantenerlo como parte de su proceso de construcción. De esta manera, puede ayudar a evitar ese escenario de haber desarrollado un producto prácticamente imposible de desinstalar. (Trac fue un ejemplo de esto por un tiempo, requiriendo rastrear versiones específicas de bibliotecas de Python extrañas).
(podría seguir sobre cómo el instalador de Windows a veces decide usar mi disco duro USB externo lento como un lugar) descomprimir sus archivos, cómo parece estar sentado sin hacer nada durante minutos en computadoras que han tenido muchas instalaciones de MSI en ellos, y cómo esa barra de progreso se reinicia una miríada de veces durante una única instalación es la cosa más idiota que tengo Alguna vez visto, pero voy a guardar esas diatribas para otro día. =)
Mis dos centavos; tenga en cuenta que realmente sé lo suficiente sobre Windows Installer como para hacer daño, pero esta es mi evaluación proveniente de un desarrollador de pequeñas empresas que simplemente intenta usarla. ¡Buena suerte!
8 horas? ¡Eso es bastante rápido! Mi última codificación de instalación de InnoSetup tomó DIEZ DÍAS, y todavía no funcionará en Vista. Instaló una biblioteca de aplicaciones, algunas aplicaciones de muestra, creó una base de datos, instaló e inició 2 servicios de Windows y publicó un sitio web, pero 10 días es demasiado largo ... –