build msbuild windows-installer installshield msiexec

build - Desinstalación de compilación MSI: el directorio instalado no se elimina



msbuild windows-installer (1)

¿Está ejecutando un controlador que no es MSI para instalar EXE desde su MSI? ¿Correcto? ¿O tal vez es un MSI envuelto en un EXE?

¿Tienes Installshield Premier ? ¿Podría usar un proyecto de suite e instalar el EXE a través del programa de arranque antes (o después) de la instalación de MSI? Honestamente, nunca he usado esta función, pero ejecutar configuraciones en secuencia es para lo que sirve. Las acciones personalizadas integradas en archivos MSI que inician archivos EXE son notoriamente poco confiables. Esto es, en mi opinión, especialmente cierto si también se está ejecutando con código administrado (que creo que sí).

A la larga, el código administrado puede generar un código de acción personalizado más seguro (basado en la seguridad basado en CAS ), pero por ahora parece causar dependencias de tiempo de ejecución no deseadas, especialmente para la distribución a gran escala (distribución global) dirigida a diversas versiones de Windows (Vista, 7, 8, 10).

Me dicen que lleva un tiempo acostumbrarse a la función de suite de Installshield, pero ¿tal vez sea mejor para usted? Puede ejecutar archivos EXE, archivos MSI, parches y cremalleras en secuencia. Supongo que algunos trucos para definir el comportamiento de desinstalación y actualización y muchas pruebas. Estoy bastante seguro de que los empaquetadores de aplicaciones corporativas estarían felices de ver una suite en lugar de un MSI con muchas cosas extrañas incrustadas.

ACTUALIZACIÓN : Una vez que haya compilado un archivo suite setup.exe, se puede extraer como se describe aquí: con respecto a la instalación silenciosa usando Setup.exe generado usando el archivo de proyecto Installshield 2013 (.issuite)

Alternativamente, puede intentar extraer los archivos setup.exe para la configuración del controlador e instalar los controladores como componentes MSI normales y ejecutar DPinst.exe para instalar / desinstalar los controladores (herramienta de DIFx ). También bastante torpe, especialmente cuando necesita incluir la desinstalación.

La configuración de su controlador probablemente ya utiliza DPInst.exe. Verificaría si puede extraer un MSI del EXE y usarlo en lugar del EXE para incluirlo en el proyecto de la suite. Algunos consejos sobre cómo lidiar con los archivos setup.exe (extracción, parámetros de tiempo de ejecución, etc.): Extraiga MSI de EXE .

WiX tiene el elemento Driver en una de sus extensiones para hacer frente a las instalaciones de controladores. Nunca he tenido la oportunidad de probarlo.

Creé el paquete de compilación MSI para nuestra aplicación. Después de esta instalación, activamos otro software de controlador dependiente en el proceso separado en un evento comprometido de la clase Installer como se muestra a continuación,

Process.Start ("Ruta del software del controlador")

Estamos ante un problema, la carpeta del directorio instalado (está vacío) no se elimina al desinstalar la misma. En realidad, al igual que la instalación, desencadenamos la desinstalación del software del controlador dependiente en el proceso separado anulando el método Desinstalar de la clase de instalador.

Alguien, por favor, ayúdame a superar este problema? ¿Cómo podría eliminar el directorio instalado?

No puedo cambiar el procedimiento de instalación, ya que somos conscientes de que no podemos procesar otra instalación / desinstalación cuando se está ejecutando otra.