Habilite los registros de instalación para el instalador MSI sin ningún argumento de línea de comando

Resuelto Mayur asked hace 5 años • 2 respuestas

¿Cómo puedo habilitar el inicio de sesión en mi proyecto MSI y configurarlo MsiLogFileLocation? Ahora estoy ejecutando mi setup.msicon argumentos de línea de comando:

msiexec /i install.msi /l*v InstallLog.log

Quiero registrar mi trabajo siempre ejecutándolo setup.msisin ningún argumento. ¿Hay alguna manera de hacer eso?

Mayur avatar Jan 31 '19 12:01 Mayur
Aceptado

Procedimiento de registro de una línea: InstalarYour.msiy crear un archivo de registro detallado. Más abajo.

msiexec.exe /i C:\Path\Your.msi /L*v C:\Your.log

Desde el SDK de MSI : " Puede habilitar el registro detallado en la computadora del usuario mediante las opciones de línea de comandos , la propiedad MsiLogging , la política de registro , MsiEnableLog y el método EnableLog ".

Respuesta corta : agregue la propiedad MsiLogging a la tabla de propiedades de su MSIy tal vez úsela"vp"como valor (sin las comillas).


Consejo importante de depuración : busque " valor 3 " en el archivo de registro para encontrar errores como lo explicaRob Mensching(autor de Wix & Orca). De lo contrario, los archivos de registro MSI pueden resultar abrumadores. Vea más sobre la interpretación de registros a continuación (sección amarilla).


  • Respuesta similar
  • Sobre los interruptores de registro y el contenido de MSI

Grabar :WiX Burn Bundles(setup.exelanzadores) tienen sus propias construcciones de registro (más allá del registro específico de MSI descrito anteriormente). En otras palabras, los archivos MSI tienen su registro ysetup.exelos lanzadores de grabación tienen el suyo.

  • Vea esta respuesta y del propio Rob Mensching (benevolencia de WiX).
  • RECOMENDADO : https://support.firegiant.com/hc/en-us/articles/230912407

Extracción de setup.exe : Los paquetes grabados de setup.exe también se pueden extraer (información sobre la extracción de archivos MSI y setup.exe en general); en otras palabras, puede descomprimir el contenido de setup.exe en una carpeta de salida. Aquí hay un ejemplo en línea (siga el enlace para obtener más información):

dark.exe -x outputfolder setup.exe

dark.exees un binario de WiX: primero instale WiX ( enlaces de inicio rápido de WiX ) para extraer un setup.exe de WiX (a partir de ahora, ¿podría cambiar?). Más información sobre dark.exe (sección 4).


Registro exprés (detallado) : el registro detallado más simple posible desdecmd.exe.

msiexec.exe /i C:\Path\Your.msi /L*v C:\Your.log

Explicación rápida de parámetros :

 /i = run install sequence 
 /L*v C:\Your.log = verbose logging at specified path

Registro de depuración (detallado) : registro avanzado y lento para capturar el máximo de detalles.

msiexec.exe /i C:\Path\Your.msi /L*vx! C:\Your.log

Explicación rápida de parámetros :

 /i = run install sequence 
 /L*vx! C:\Your.log = verbose debug logging at specified path

 The x adds extra debugging information, and the ! disables the log buffer.
 This means there is no lost log if there are any crashes.

Todos los paquetes MSI: registro global (política)

Sí, enable logging globally on the machineconfigurando la clave de registro adecuada. Cada MSI iniciado provocará que se cree un archivo de registro con un nombre temporal en la TEMPcarpeta. Ordene la lista de archivos por fecha de cambio para obtener el más reciente.

Clave y valor del registro : la configuración del registro real:

[HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Installer]
"Logging"="voicewarmup"
"Debug"=dword:00000007

Cómo hacerlo : consulte esta entrada de preguntas frecuentes de installsite.org, sección "Globally for all setups on a machine": http://www.installsite.org/pages/en/msifaq/a/1022.htm para conocer el procedimiento exacto.

Aviso (detalle técnico):This is a very technical problem that may have a bothersome and highly unexpected pragmatic effect. Un efecto secundario de este registro global es que cualquier objeto de sesión que cree una instancia desde un script utilizando MSI-API también creará un archivo de registro en la carpeta TEMP. Esto puede provocar que se creen cientos de archivos de registro en la carpeta TEMP si itera todos los paquetes y crea una instancia de un objeto de sesión . También en el Registro de eventos (¡un gran administrador del sistema, no-no!). Problema muy específico, pero solo señalándolo. Una limpieza de la carpeta temporal y del Registro de eventos "resuelve" el problema, o mejor aún, simplemente evita la creación de objetos de sesión. Tenga en cuenta que su herramienta de implementación podría crear instancias de objetos de sesión de forma inesperada. Tal vez verifique después de habilitar el registro para no tener este problema tonto en toda la red.


Registro específico del paquete

Además de las políticas y configuraciones globales, puede personalizar el registro por paquete a través de propiedades o acciones personalizadas o simplemente especificar opciones y ubicación de registro a través de la línea de comando msiexec.exe .

Línea de comando : En su forma más simple:msiexec.exe /i C:\Path\Your.msi /L*v C:\Your.log. Documentación para la línea de comando msiexec.exe (consulte la sección para cambiar/L:)

Propiedades : puede configurar la propiedad MsiLogging en cada paquete para personalizar el registro. La propiedad MSI MsiLogFileLocation contiene la ruta al archivo de registro. Úselo si desea abrir el registro después de la instalación.

Acción personalizada : puede investigar laInstaller.EnableLog methodMSI -API para personalizar el comportamiento de registro para un MSI específico a partir de una acción personalizada. Más: Registro de Windows Installer .


Interpretación de archivos de registro MSI

Sobre el tema de la interpretación de archivos de registro: Cómo interpretar un archivo de registro MSI . Y una respuesta más sobre el tema .

Enlace directo :Direct PDF Link to Robert Macdonald's log guide(resucitado de Wayback).

Buscar errores : y, como se indicó anteriormente: busque el " valor 3 " en el archivo de registro para encontrar errores como lo explicaRob Mensching(autor de Wix & Orca). De lo contrario, los archivos de registro MSI pueden resultar abrumadores.

Instalador avanzado : ¿Cómo leo un archivo de registro detallado del instalador de Windows?

Herramienta de registro : información sobre la herramienta de registro WiLogUtl.exe del SDK de MSI y cómo habilitar el registro de depuración con escrituras de registro lentas y constantes para capturar la mayor cantidad de información de depuración posible.


Escribir en el registro : escribir en el archivo de registro MSI desde sus propias acciones personalizadas no es tan difícil. Aquí hay una introducción sobre el tema de Robert Dickau : Consejo de MSI: escribir en el archivo de registro desde una acción personalizada .

  • VBScript
  • C#/código administrado

Algunos enlaces :

  • Registro de Windows Installer (mucha información básica, lea)
  • Mejores prácticas de Windows Installer (registro detallado para solucionar problemas)
  • El registro de instalación de MSI dice: Nota: 1: 2205 2: 3: Error
  • Archivos en uso no actualizados por el instalador MSI (proyecto Visual Studio Installer)
  • ¿Cómo leo un archivo de registro detallado del instalador de Windows?
  • Cómo reproducir el error de instalación de MSI
  • Cómo leer un registro detallado del instalador de Windows
  • Diferencia entre msiexec log /lv VS /l*v
Stein Åsmul avatar Jan 31 '2019 10:01 Stein Åsmul

Para habilitar el registro automático para MSIel instalador, es necesario editarlo Orcapara establecer un valor apropiado para MsiLoggingla propiedad. MSISe puede editar con Orca, la herramienta oficial de MS para editar MSIpaquetes.
MSILos paquetes no son binarios ejecutables sino una base de datos con datos que definen el proceso de instalación. Podemos agregar la MsiLoggingpropiedad con valor v.

Esta imagen muestra la interfaz de usuario de Orca para editar MSI y habilitar el registro.
( árbitro )

Mayur avatar Jan 31 '2019 12:01 Mayur