Error Number: 1635 (Unable to install Windows Installer MSP file)
Cuando un componente de SQL Server 2005 se actualiza, se crean unos archivos “Windows installer patch” en cache, ocultos en la carpeta C:\Windows\Installer. Cuando un parche posterior se instala, el instalador busca el registro para encontrar el nivel de versión actual y a continuación busca los archivos creados (.msp). Cuando estos archivos no se encuentran o están corruptos, el instalador no puede instalar ninguna versión posterior. Además, no se puede desinstalar la versión actual. Volver a ejecutar el instalador de la versión actual no recrea los archivos.
Por ejemplo, cuando se produce este problema durante la instalación de los Database Services, el error en el Summary.txt será reflejado de la siguiente manera:
Product : SQL Server Database Services 2005 (MSSQLSERVER)
Product Version (Previous): 3200
Product Version (Final) :
Status : Failure
Log File : D:\Program Files\Microsoft SQL Server\90\Setup Bootstrap\LOG\Hotfix\SQL9_Hotfix_KB949095_sqlrun_sql.msp.log
Error Number : 1635
Error Description : Unable to install Windows Installer MSP file
Workaround:
Abre el hotfix log del instalador de los Database Services (SQL9_Hotfix_KB949095_sqlrun_sql.msp.log):
MSI (s) (C8:5C) [15:32:29:468]: Couldn't find local patch 'D:\WINDOWS\Installer\42f480ea.msp'. Looking for it at its source.
MSI (s) (C8:5C) [15:32:29:468]: Resolving Patch source.
MSI (s) (C8:5C) [15:32:29:468]: User policy value 'SearchOrder' is 'nmu'
MSI (s) (C8:5C) [15:32:29:468]: User policy value 'DisableMedia' is 0
MSI (s) (C8:5C) [15:32:29:468]: Machine policy value 'AllowLockdownMedia' is 0
MSI (s) (C8:5C) [15:32:29:468]: SOURCEMGMT: Media enabled only if package is safe.
MSI (s) (C8:5C) [15:32:29:484]: SOURCEMGMT: Looking for sourcelist for product {4A35EF4A-D868-4B15-A84D-3E8925AA9558}
MSI (s) (C8:5C) [15:32:29:484]: SOURCEMGMT: Adding {4A35EF4A-D868-4B15-A84D-3E8925AA9558}; to potential sourcelist list (pcode;disk;relpath).
MSI (s) (C8:5C) [15:32:29:484]: SOURCEMGMT: Now checking product {4A35EF4A-D868-4B15-A84D-3E8925AA9558}
El código del hotfix del archivo 42f480ea.msp que falta es: {4A35EF4A-D868-4B15-A84D-3E8925AA9558}
Este código esta codificado, y no se puede utilizar directamente para localizar el archivo .msp en el registro.
Para determinar el código real, abre el registro (regedit) y ve a:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Patches]
Selecciona todas las subclaves contenidas en la clave Patches, y verifica qué clave contiene un valor que se llama LocalPackage y tiene una referencia al archivo .msp que buscamos ('D:\WINDOWS\Installer\42f480ea.msp').
La ruta y el valor aparecen como:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Patches\A4FE53A4868D51B48AD4E39852AA5985]
Class Name: <NO CLASS>
Last Write Time: 11/6/2008 - 2:29 PM
Value 0
Name: LocalPackage
Type: REG_SZ
Data: D:\WINDOWS\Installer\42f480ea.msp
Ahora, conocemos el código real del archivo: A4FE53A4868D51B48AD4E39852AA5985
Luego, necesitamos determinar que hotfix contiene el archivo .msp que falta.
Abre la clave: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products]
Abre todos los códigos de la clave Products y todas las subclaves Patches hasta encontrar la clave que contiene el código real del hotfix (A4FE53A4868D51B48AD4E39852AA5985).
En nuestro ejemplo, el código del hotfix se encuentra en:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\B29A3732C1C117E44B49C59AF769AA91\Patches\A4FE53A4868D51B48AD4E39852AA5985]
Cuando se selecciona este código del hotfix en la sección izquierda del registro, se podrá ver el DisplayName en la sección derecha. El DisplayName indicara que SQL Service Pack o Hotfix contiene el archive Windows Installer Patch que falta.
En nuestro ejemplo:
Name: DisplayName
Type: REG_SZ
Data: Service Pack 2 for SQL Server Database Services 2005 ENU (KB921896)
Por lo tanto necesitamos bajar el “Service Pack 2 para SQL Server Database Services 2005 ENU (KB921896)” de nuevo y extraerlo a nuestro servidor. El comando para extraer el paquete de instalación Service Pack 2 a una carpeta llamada 'ExtractSQL2005SP2' es:
>SQLServer2005SP2-KB921896-x86-ENU.exe /x:c:\ExtractSQL2005SP2
Y por ultimo necesitamos localizar el archivo .msp en el paquete de instalación extraído que necesitamos copiar a
D:\WINDOWS\Installer.
Cada componente SQL tendrá un archivo .msp distinto. En nuestro ejemplo, tenemos un error 1635 para el SQL Server Database Services. Por lo tanto necesitamos copiar sqlrun_sql.msp.
Consulte la siguiente lista de nombres de archivos restantes y los correspondientes componentes SQL:
sqlrun_sql.msp -> Database Services
sqlrun_as.msp -> Analyses Services
sqlrun_dts.msp -> Data Transformation Services
sqlrun_ns.msp -> Notification Services
sqlrun_rs.msp -> Reporting Services
sqlrun_tools.msp -> Tools and Workstation Components
Entonces solo falta renombrar sqlrun_sql.msp a 42f480ea.msp (ver SQL9_Hotfix_KB949095_sqlrun_sql.msp.log) y copiar el archivo a D:\WINDOWS\Installer. Ahora podemos empezar de nuevo la instalación del hotfix.
- Paul Gruner.
Comments
Anonymous
November 03, 2009
Mis felicitaciones. La respuesta que tiene este blog me sirvio como modelo para solucionar un incoveniente con la instalación de los componentes de la estación de trabajo. En un momento me resolvio un inconveniente de varios días. Muchas gracias.Anonymous
November 04, 2009
Muchas gracias! Nos alegra ver que la información que proporcionamos os sirve y os ahorra tiempo. Esperamos seguir poniendo post tan útiles como este siempre. Un saludo, El equipo de Esecuelesinfronteras.