2008-11-24 18 views
21

Necesito saber esto, ya que este es un prerrequisito para .NET 3.5 y si incluyo .NET bootstrapper, también debería ver si se necesita Windows Installer 3.1.¿Cómo puedo verificar si Windows Installer 3.1 o una versión superior está instalada?

En este momento estoy comprobación de la clave de registro:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\Windows XP\SP3\KB893803v2 

que comprobará para Windows Installer 3.1 pero sospecho que no comprueba las versiones superiores. (No se ha podido confirmar ni denegar)

¿Qué clave de registro debo consultar para encontrar esta información?

Editar: Tengo que comprobar esto en la configuración Inno, que es lo que estoy usando como mi bootstrapper, y no estoy seguro de cómo comprobar una versión dll allí.

+3

wow ... esta pregunta me dio la insignia de Oro de Pregunta Famosa (10k visitas) y aún así solo 1 votacion. Debería haber otra insignia para eso: p – Davy8

+1

Bienvenido al mundo de los instaladores. –

Respuesta

14

localice el instalador msi.dll con esta ruta de registro: HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Windows \ CurrentVersion \ Installer

valor: InstallerLocation

a continuación, obtener la información de versión de ese archivo.

actualización: ¡la manera arriba es vieja! nueva manera de detectar la versión está documentado aquí: http://msdn.microsoft.com/en-us/library/aa368280%28VS.85%29.aspx

+1

Tenga en cuenta los redireccionamientos en sistemas de 64 bits ... a qué archivo msi se le dirigirá dependerá de si su aplicación ejecuta el modo de 32 o 64 bits. Dicho esto, sin embargo, las versiones de 32 y 64 bits del instalador de Windows * deberían * ser las mismas en cualquier sistema de 64 bits. – Mark

+1

al menos en sistemas win32 esta es solo la ubicación, msiexec.exe es el nombre del archivo. Haga clic derecho -> Propiedades -> Versión –

+0

de la manera que describí, fue la forma oficial documentada en msdn (en dec.08 -> vea http://blogs.msdn.com/windows_installer_team/archive/2005/09/09/458528 .aspx). actualizaron las mejores prácticas a: http://msdn.microsoft.com/en-us/library/aa368280%28VS.85%29.aspx –

1

Si esto se encuentra dentro del archivo MSI, puede verificar la propiedad VersionMsi.

13

En la ventana "Ejecutar", escribe "msiexec". Aparecerá una ventana que muestra la versión de Windows Installer en la primera línea.

+2

¿Cómo se supone que se debe analizar desde la instalación de Inno? – Davy8

+0

+1 forma muy sencilla de encontrar la versión exacta de forma no periódica. Gracias por eso. – ashes999

3

Si desea comprobar la versión del instalador de Windows en su sistema, comprobar la versión de MSI.DLL en la carpeta Windows \ System 32.

Haga clic derecho en MSI.DLL, seleccione propiedades -> vaya a la pestaña Detalles y compruebe la versión del archivo.

+0

+1 Utilicé sigcheck.exe de sysinternals para verificar esto. sigcheck c: \ windows \ system32 \ msi.dll – Jeff

+1

Es 'system32' no' System 32'. Y ese directorio no tiene que estar bajo un directorio llamado 'windows'. Mejor pago de forma dinámica, p. Ej. usando '% systemroot%' donde podría estar tu system32. – Anthon

0

Por favor, compruebe this link puede ayudarle como ya funciona para mí para Windows 7, es de esperar que puede funcionar para otras versiones de ventanas también para comprobar la versión de Windows Installer.

Cuestiones relacionadas