COM- och .NET-fel efter migrering av Office-arkitektur
Symptom
När du har migrerat Microsoft Office-arkitekturen från 32-bitars till 64-bitars får du fel om ett COM-program eller en .NET Framework-klient används. Dessa möjliga fel omfattar, men är inte begränsade till, följande:
TYPE_E_CANTLOADLIBRARY
TYPE_E_LIBNOTREGISTERED
TYPE_E_ELEMENTNOTFOUND
Felen uppstår vanligtvis om COM-programmet eller .NET-klienten körs som en 32-bitarsprocess.
Exempel
Dessa fel kan inträffa när följande kod körs i 86-bitars PowerShell:
$xl = New-Object -ComObject Excel.Application
$xl.Visible = $True
Orsak
Felen orsakas av överblivna registerundernycklar som skapas av migreringen.
Åtgärd
Åtgärda problemet genom att använda någon av följande metoder.
Metod 1: Ta bort överblivna undernycklar automatiskt
Om du vill identifiera och ta bort överblivna undernycklar kör du det här skriptet från följande GitHub-plats:
Metod 2: Ta bort överblivna undernycklar manuellt
Om PowerShell-skriptet från steg 1 inte tar bort de överblivna undernycklarna kan du också söka efter överblivna poster manuellt. Den berörda enheten kan ha överblivna undernycklar som liknar följande exempel:
HKEY_CLASSES_ROOT\WOW6432Node\TypeLib\GUID\1.9\0\Win32
Obs! I det här exemplet GUID är en sträng som är specifik för undernyckeln.
Undernyckeln har ett värde som pekar på en körbar Office-fil som saknas i filsökvägen Programfiler (x86). Till exempel:
C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE
Det bör också finnas en angränsande undernyckel som pekar på rätt plats för 64-bitars programfiler.