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 (2)

  1. G.O. Arango says:

    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.

  2. 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.