Delen via


COM- en .NET-fouten na migratie van Office-architectuur

Symptomen

Nadat u de Microsoft Office-architectuur hebt gemigreerd van 32-bits naar 64-bits, ondervindt u fouten als een COM-toepassing of een .NET Framework-client wordt gebruikt. Deze mogelijke fouten omvatten, maar zijn niet beperkt tot, het volgende:

  • TYPE_E_CANTLOADLIBRARY

  • TYPE_E_LIBNOTREGISTERED

  • TYPE_E_ELEMENTNOTFOUND

De fouten treden meestal op als de COM-toepassing of .NET-client wordt uitgevoerd als een 32-bits proces.

Voorbeeld

Deze fouten kunnen optreden wanneer de volgende code wordt uitgevoerd in 86-bits PowerShell:

$xl = New-Object -ComObject Excel.Application

$xl.Visible = $True

Oorzaak

De fouten worden veroorzaakt door zwevende registersubsleutels die door de migratie worden gemaakt.

Oplossing

Gebruik een van de volgende methoden om dit probleem op te lossen.

Methode 1: Zwevende subsleutels automatisch verwijderen

Als u de zwevende subsleutels wilt detecteren en verwijderen, voert u dit script uit vanaf de volgende GitHub-locatie:

Office TypeLib Remediation

Methode 2: Zwevende subsleutels handmatig verwijderen

Als het PowerShell-script uit stap 1 de zwevende subsleutels niet verwijdert, kunt u ook handmatig controleren op zwevende vermeldingen. Het betrokken apparaat heeft mogelijk zwevende subsleutels die lijken op het volgende voorbeeld:

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

Opmerking: in dit voorbeeld GUID is een tekenreeks die specifiek is voor de subsleutel.

De subsleutel heeft een waarde die verwijst naar een ontbrekend office-uitvoerbaar bestand in het bestandspad Program Files (x86). Bijvoorbeeld:

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

Er moet ook een aangrenzende subsleutel zijn die verwijst naar de juiste locatie van 64-bits programmabestanden.