2009-10-30 39 views
5

Uno de nuestros MSI ha empezado a fallar con el Error 2902. Se realizará durante la mayor parte del proceso de instalación, aparecerá un cuadro de error y luego se deshará de la instalación. No hemos realizado ningún cambio importante en el instalador desde la última versión de trabajo.¿Qué puede causar el error 2902 al instalar un MSI?

Correr msiexec con el registro activado da un mensaje más informativo:

Action 17:21:22: RegisterProduct. Registering product 
Error 2902: Operation ixoFileCopy called out of sequence 

Esto viene inmediatamente después de la sección "WriteRegistryValues". ¿Alguien sabe qué causa la llamada a ixoFileCopy? Supongo que la resolución implicará cambiar la secuencia del paso "Registrar producto", pero no estoy seguro de qué debería proceder.

¡Gracias por cualquier ayuda!

Respuesta

2

Resulta que en nuestro caso esto estaba sucediendo debido a que un archivo de datos se estaba volviendo demasiado grande para que MSI lo manejara sin fragmentar la cabina. This thread menciona el problema y una solución posible.

+0

Para completar, el ** msi.chm ** (documentación de SDK) indica en un comentario el código de error 2902: * "... Puede indicar que la instalación de ensamblados Win32 fue creada incorrectamente. el componente por el lado puede necesitar una ruta clave. * " –

1

Tuve el mismo error.

Aparentemente, faltan archivos o están dañados (¿error de red?). El problema ha sido resuelto después de copiar toda la carpeta nuevamente.

1

También he visto este error cuando los componentes se proporcionan con guias en blanco.

p. Ej.

<Component Id="cmp_MyFailingComponent" Guid=""> 
    <File Id="f_myFile" 
    Assembly=".net" 
    Source="C:\Program Files\MyFile.dll" 
    KeyPath="yes"/> 
</Component> 
+0

Así que, si busco en Google un problema que tengo y encuentro mi propia respuesta de hace 3 años, supongo que eso significa que estoy perdiendo mis mármoles ... (suspiro...) –

0

He visto este error cuando algunos de los campos de la columna de la base de datos son más largos que el ancho de la columna.

Había convertido un MSI en un proyecto de InstallShield, hice algunas adiciones y construí un nuevo MSI, construido sin ningún error. La instalación falló luego con el error 2902.

Los componentes que fallaron tenían nombres de componentes más largos que los 72 caracteres permitidos. (ver Tabla de componentes) El MSI original funcionó bien a pesar de tener los nombres largos, pero supongo que causaron que InstallShield construyera el MSI de alguna manera. No es culpa de InstallShield, aunque creo que debería haber provocado un error durante la compilación.

Cuestiones relacionadas