c# - Wix-Cómo ejecutar/instalar aplicaciones sin interfaz de usuario
windows-installer exe (2)
No incrustar el archivo ejecutable de instalación en archivos MSI
OK, la pregunta no está 100% clara, pero lo intentaré. Entregar archivos EXE de esta manera, incrustado en un archivo MSI, no es ideal. De hecho, es una muy mala idea, la verdad sea dicha. Los archivos MSI generalmente no deben usarse solo como envoltorios para entregar archivos setup.exe incrustados. La gran complejidad de MSI con su suplantación avanzada, secuenciación y condicionamiento hace que este error sea muy propenso y difícil de implementar y probar. Además, si el archivo binario que incrusta resulta ser un archivo MSI envuelto en un archivo binario setup.exe, MSI fallará porque no permite dos secuencias de instalación simultáneas, a menos que las instale desde la secuencia de la interfaz de usuario (que ganó '' No funciona cuando se ejecuta en silencio).
¿Ejecuta archivos setup.exe de forma silenciosa o usa el reempaquetado de aplicaciones?
La capacidad de los archivos MSI para ejecutarse de manera confiable en modo silencioso (sin GUI) no puede igualarse con las configuraciones de estilo heredado. Sin embargo, a menudo puede encontrar conmutadores para un setup.exe heredado (o moderno) o un binario de instalación que le permitirá instalarse en modo silencioso, pero no con derechos de instalación elevados de MSI. Tendría que ejecutar con derechos de administrador reales. Además, a menudo tiene que "grabar" una ejecución a través de los cuadros de diálogo y usar las respuestas grabadas para ejecutar la secuencia de instalación; esto es propenso a errores ya que podría aparecer un cuadro de diálogo inesperado donde no hay una "respuesta" registrada. Entonces estás atrapado. El funcionamiento silencioso confiable de MSI es una de las principales ventajas corporativas de MSI .
Puede encontrar mucha información sobre esto en esta respuesta que escribí hace un tiempo: ¿Cómo puedo usar powershell para ejecutar un instalador? . No deje que el título de la pregunta lo confunda, el problema sigue siendo bastante similar a lo que está preguntando, al menos eso creo. Por favor, dale un vistazo rápido al menos.
La respuesta también describe el " Reempaquetado de aplicaciones ": el proceso de convertir instaladores heredados (o modernos) de setup.exe a formato MSI nativo. Esta es una tarea especializada que requiere una buena comprensión de MSI, pero produce excelentes resultados una vez realizada correctamente, y la instalación silenciosa es muy sencilla ya que no confía en "archivos de respuesta silenciosa" frágiles como se describió anteriormente.
Bootstrappers / Chainers
Aunque no estoy seguro de si todos le permiten instalar en modo silencioso, existen herramientas disponibles que le permiten instalar archivos MSI y binarios de instalación en secuencia desde un archivo EXE de inicio. Hay otra respuesta que discute varias opciones de arranque aquí: Wix y .NET Framework (requisitos previos) . Uno de los bootstrappers recomendados en esta discusión es dotNetInstaller . Nunca lo he usado, así que no puedo decirte si es bueno. Puede estar más basado en la GUI que la característica de arranque de WiX llamada Burn , sin embargo, no estoy seguro de si es una coincidencia en función de las características. Si realiza la prueba, informe sus hallazgos. Ciertamente hay otros bootstrappers por ahí, pero no es mi área de especialización. Las herramientas comerciales como Installshield (al menos en su versión Premium) tienen características para construir un programa de arranque utilizando una GUI y creo que se refieren a ellas como "Install Suites", o algo así. Solo un paquete de instaladores y requisitos previos esencialmente. No he probado esta función de arranque en el instalador avanzado .
Con respecto a Burn:
- Burn se basa en el marcado y la compilación XML, generalmente con Visual Studio.
- Aquí hay una descripción de cómo instalar .NET Framework usando Burn .
- La documentación oficial de Burn .
- Como puede ver, es un poco más complicado que las herramientas que le permiten usar una GUI para construir su secuencia o "cadena" de instaladores.
- Es gratis y confiable.
- Trataré de desenterrar una muestra de grabación para usted.
- OK, esta debería ser una buena muestra de lo que Burn puede hacer: https://github.com/frederiksen/Classic-WiX-Burn-Theme . Creo que hay algunos GUID duplicados de proyectos de Visual Studio en este ejemplo, pero eso no debería ser un problema para usted a menos que, por alguna razón, agregue ambos proyectos a su proceso de compilación (entonces los GUID duplicados probablemente confundirán sus herramientas de compilación, solo algo que me pasó una vez).
- Para ser claros, Burn crea paquetes de arranque setup.exe capaces de contener tanto archivos MSI como archivos EXE que se ejecutan en una secuencia dada y es parte del kit de herramientas WiX. WiX mismo crea archivos MSI a partir de archivos fuente WiX XML. Los archivos Burn setup.exe también se crean a partir de archivos fuente WiX XML, pero el esquema es obviamente diferente. Solo para aquellos que nunca han visto estas herramientas. El ejemplo directamente arriba mostrará la diferencia muy bien con un proyecto WiX MSI y un proyecto WiX Burn. También tiene un proyecto para construir un binario que luego se incluye tanto en MSI como en setup.exe.
Tengo un archivo exe y necesito convertirlo a msi e instalarlo usando la política de grupo en más computadoras en el dominio sin interacción del usuario.
Encontré este tutorial https://stackoverflow.com/questions/19271862/wix-how-to-run-exe-files-after-installation-from-installed-directory/19274431# =
Pero esto usando la interfaz de usuario, donde el usuario debe hacer clic en el botón. Después de instalar msi, ejecute el archivo exe e instálelo en la computadora en segundo plano, sin ninguna interfaz de usuario.
¿Es posible? Cómo.
Gracias por la ayuda.
Las instalaciones de MSI generalmente siguen lo siguiente: https://msdn.microsoft.com/en-us/library/windows/desktop/aa372024(v=vs.85).aspx y así puede usar / quiet como una opción para suprimir el IU y para que simplemente "lo haga"