Partilhar via


Erros COM e .NET após a migração da arquitetura do Office

Sintomas

Depois de migrar a arquitetura do Microsoft Office de 32 bits para 64 bits, ocorrerão erros se for utilizada uma aplicação COM ou um cliente .NET Framework. Estes possíveis erros incluem, mas não se limitam a, o seguinte:

  • TYPE_E_CANTLOADLIBRARY

  • TYPE_E_LIBNOTREGISTERED

  • TYPE_E_ELEMENTNOTFOUND

Normalmente, os erros ocorrem se a aplicação COM ou o cliente .NET estiver em execução como um processo de 32 bits.

Exemplo

Estes erros podem ocorrer quando o seguinte código é executado no PowerShell de 86 bits:

$xl = New-Object -ComObject Excel.Application

$xl.Visible = $True

Causa

Os erros são causados por subchaves de registo órfãs criadas pela migração.

Resolução

Para corrigir este problema, utilize um dos seguintes métodos.

Método 1: Eliminar subchaves órfãs automaticamente

Para detetar e remover as subchaves órfãs, execute este script a partir da seguinte localização do GitHub:

Remediação da TypeLib do Office

Método 2: Eliminar manualmente subchaves órfãs

Se o script do PowerShell do Passo 1 não eliminar as subchaves órfãs, também pode procurar entradas órfãs manualmente. O dispositivo afetado pode ter subchaves órfãs semelhantes ao seguinte exemplo:

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

Nota: neste exemplo, GUID é uma cadeia específica da subchave.

A subchave terá um valor que aponta para um executável do Office em falta no caminho do ficheiro Ficheiros de Programa (x86). Por exemplo:

C:\Programas (x86)\Microsoft Office\Root\Office16\EXCEL.EXE

Também deve existir uma subchave adjacente que aponte para a localização correta dos Ficheiros de Programa de 64 bits.