Errores COM y .NET después de la migración de la arquitectura de Office

Síntomas

Después de migrar la arquitectura de Microsoft Office de 32 bits a 64 bits, experimenta errores si se usa una aplicación COM o un cliente de .NET Framework. Estos posibles errores incluyen, entre otros, los siguientes:

  • TYPE_E_CANTLOADLIBRARY

  • TYPE_E_LIBNOTREGISTERED

  • TYPE_E_ELEMENTNOTFOUND

Los errores suelen producirse si la aplicación COM o el cliente .NET se ejecutan como un proceso de 32 bits.

Ejemplo

Estos errores pueden producirse cuando se ejecuta el código siguiente en PowerShell de 86 bits:

$xl = New-Object -ComObject Excel.Application

$xl.Visible = $True

Causa

Los errores se deben a subclaves huérfanas del Registro creadas por la migración.

Solución

Para solucionar este problema, use cualquiera de los métodos siguientes.

Método 1: Eliminación automática de subclaves huérfanas

Para detectar y quitar las subclaves huérfanas, ejecute este script desde la siguiente ubicación de GitHub:

Corrección de TypeLib de Office

Método 2: Eliminación manual de subclaves huérfanas

Si el script de PowerShell del paso 1 no elimina las subclaves huérfanas, también puede comprobar si hay entradas huérfanas manualmente. El dispositivo afectado podría tener subclaves huérfanas similares al ejemplo siguiente:

HKEY_CLASSES_ROOT\WOW6432Node\TypeLib\GUID\1.9\0\Win32

Nota: En este ejemplo, GUID es una cadena específica de la subclave.

La subclave tendrá un valor que apunta a un archivo ejecutable de Office que falta en la ruta de acceso del archivo archivos de programa (x86). Por ejemplo:

C:\Archivos de programa (x86)\Microsoft Office\Root\Office16\EXCEL.EXE

También debe haber una subclave adyacente que apunte a la ubicación correcta de archivos de programa de 64 bits.